window程序设计基本框架

 1 #include<windows.h>
 2 //通用字符串的定义头文件
 3 #include<tchar.h>
 4 
 5 
 6 
 7 //消息回调函数
 8 LRESULT CALLBACK WindowProc(
 9     HWND hWnd,             //窗口句柄
10     UINT uMsg,             //消息ID
11     WPARAM wParam,         //消息参数1
12     LPARAM lParam          //消息参数2
13     ){
14     //默认的消息处理函数
15     return DefWindowProc(hWnd, uMsg, wParam, lParam);
16 }
17 
18 
19 
20 //WinMain主函数
21 //WinMain是一个定义的宏,自适应win32程序的版本是多字节版本还是UNICODE版本
22 //APIENTTRY 定义的宏,调用方式,此处为_stdcall
23 int APIENTRY WinMain( 
24     _In_ HINSTANCE hInstance,          //程序的实例句柄,程序的加载地址
25     _In_ HINSTANCE hPrevInstance,      //参数已经废弃
26     _In_ LPSTR     lpCmdLine,          //由调用者传入的命令
27     _In_ int       nCmdShow){          //由调用者传入的int型参数
28     //设计一个窗口类:
29     WNDCLASS wce;
30     wce.style = CS_HREDRAW | CS_VREDRAW;                  //窗口类的风格
31     wce.lpfnWndProc = WindowProc;                         //上面的回调函数,指向窗口过程的指针
32     wce.cbClsExtra = 0;                                   //分配给窗口类的扩展的字节数
33     wce.cbWndExtra = 0;                                   //分配给窗口实例的扩展的字节数
34     wce.hInstance = hInstance;                            //实例句柄
35     wce.hIcon = LoadIcon(hInstance, IDI_APPLICATION);     //类图标的句柄
36     wce.hCursor = LoadCursor(nullptr, IDC_ARROW);         //类鼠标指针的句柄
37     wce.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);       //刷新背景所用的画刷的句柄
38     wce.lpszMenuName = NULL;                              //窗口类包含的菜单的名称
39     wce.lpszClassName = _T("First");                      //窗口类名
40     //WNDPROC IpfnWndProc 注册好窗口类后,使用窗口类创建的窗口得到的
41     //消息全部发送给此成员存储的回调函数,其地位非常的重要
42 
43     //注册窗口类
44     RegisterClass(&wce);
45 
46 
47     //创建窗口
48     HWND hWnd = CreateWindow(
49         _T("First"),          //即我们在WNDCLASS的ipszClassName中指定的名称
50         _T("HAHA"),           //窗口实例上显示的标题文字
51         WS_OVERLAPPED,        //窗口样式
52         CW_USEDEFAULT,        //窗口左上边坐标,默认则y省略
53         0,
54         CW_USEDEFAULT,        //窗口宽度,高度
55         0, 
56         nullptr,              //父类窗口句柄
57         nullptr,              //窗口菜单或子窗口ID
58         hInstance,            //窗口所属的应用程序句柄
59         nullptr);             //窗口附加补充信息
60 
61     //显示刷新窗口
62     ShowWindow(hWnd, SW_SHOW);
63     UpdateWindow(hWnd);
64 
65 
66 
67 
68     //建立消息泵,循环接收处理消息
69     MSG msg = {};
70     while (GetMessage(&msg, nullptr, 0, 0)){
71         TranslateMessage(&msg);
72         DispatchMessage(&msg);
73     
74     }
75 
76     //退出程序
77     return msg.wParam;
78 }

 

posted @ 2016-03-07 15:59  天还是那么蓝  阅读(337)  评论(0编辑  收藏  举报