博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[转]孙鑫VC教程例子代码1---Windows程序内部运行原理
阅读量:6839 次
发布时间:2019-06-26

本文共 1984 字,大约阅读时间需要 6 分钟。

本文转自:

 

创建一个完整的窗口需要经过下面四个操作步骤:

设计一个窗口类;

注册窗口类;

创建窗口;

显示及更新窗口。

创建一个WIN32 Application的程序,代码如下:

#include <windows.h>

#include <stdio.h>

LRESULT CALLBACK WinSunProc(

 HWND hwnd,      // handle to window

 UINT uMsg,      // message identifier

 WPARAM wParam, // first message parameter

 LPARAM lParam   // second message parameter

);

int WINAPI WinMain(

 HINSTANCE hInstance,      // handle to current instance

 HINSTANCE hPrevInstance, // handle to previous instance

 LPSTR lpCmdLine,          // command line

 int nCmdShow              // show state

)

{

WNDCLASS wndcls;

wndcls.cbClsExtra=0;

wndcls.cbWndExtra=0;

wndcls.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);

wndcls.hCursor=LoadCursor(NULL,IDC_CROSS);

wndcls.hIcon=LoadIcon(NULL,IDI_ERROR);

wndcls.hInstance=hInstance;

wndcls.lpfnWndProc=WinSunProc;

wndcls.lpszClassName="Weixin2003";

wndcls.lpszMenuName=NULL;

wndcls.style=CS_HREDRAW | CS_VREDRAW;

RegisterClass(&wndcls);

HWND hwnd;

hwnd=CreateWindow("Weixin2003","北京维新科学技术培训中心",WS_OVERLAPPEDWINDOW,

        0,0,600,400,NULL,NULL,hInstance,NULL);

ShowWindow(hwnd,SW_SHOWNORMAL);

UpdateWindow(hwnd);

MSG msg;

while(GetMessage(&msg,NULL,0,0))

{

        TranslateMessage(&msg);

        DispatchMessage(&msg);

}

return 0;

}

LRESULT CALLBACK WinSunProc(

 HWND hwnd,      // handle to window

 UINT uMsg,      // message identifier

 WPARAM wParam, // first message parameter

 LPARAM lParam   // second message parameter

)

{

switch(uMsg)

{

case WM_CHAR:

        char szChar[20];

        sprintf(szChar,"char is %d",wParam);

        MessageBox(hwnd,szChar,"weixin",0);

        break;

case WM_LBUTTONDOWN:

        MessageBox(hwnd,"mouse clicked","weixin",0);

        HDC hdc;

        hdc=GetDC(hwnd);

        TextOut(hdc,0,50,"计算机编程语言培训",strlen("计算机编程语言培训"));

        ReleaseDC(hwnd,hdc);

        break;

case WM_PAINT:

        HDC hDC;

        PAINTSTRUCT ps;

        hDC=BeginPaint(hwnd,&ps);

        TextOut(hDC,0,0,"维新培训",strlen("维新培训"));

        EndPaint(hwnd,&ps);

        break;

case WM_CLOSE:

        if(IDYES==MessageBox(hwnd,"是否真的结束?","weixin",MB_YESNO))

        {

               DestroyWindow(hwnd);

        }

        break;

case WM_DESTROY:

        PostQuitMessage(0);

        break;

default:

        return DefWindowProc(hwnd,uMsg,wParam,lParam);

}

return 0;

}

 

转载地址:http://wawul.baihongyu.com/

你可能感兴趣的文章
Cesium 创建Geometry
查看>>
OpenGL的几何变换4之内观察全景图
查看>>
@RenderBody、@RenderSection、@RenderPage、Html.RenderPartial、Html.RenderAction的作用和区别...
查看>>
OCIEnvCreate failed with return code -1 but error message text was not available with ODP.net
查看>>
mysql日常错误信息解决方法:InnoDB: and force InnoDB to continue crash recovery here.
查看>>
jQuery中的动画
查看>>
在Linux服务器上添加ip白名单允许ssh登录访问
查看>>
JAVA入门到精通-第71讲-学生管理系统3-增删改查
查看>>
如何设置putty远程登录linux
查看>>
Mysql聚合函数
查看>>
React组件继承的由来
查看>>
当当网首页——JS代码
查看>>
java实现遍历树形菜单方法——service层
查看>>
ios appIcon配置
查看>>
首款移动社交购物平台“商宝”上线发布
查看>>
Solr配置与简单Demo[转]
查看>>
Go语言转义字符
查看>>
spring boot的热加载(hotswap)
查看>>
iis重启的几种方法
查看>>
HDU 2196 Computer 树形DP经典题
查看>>