一、消息(MSG)
操作系统将传递的信息包装成MSG类给应用程序
typedef struct tagMSG { HWND hwnd; // 窗口句柄,类似指针,系统通过句柄调用资源 UINT message; // 消息的编号(比如点击鼠标) WPARAM wParam; // unsigned int类型,关于消息的附加信息,比如按下按键,ascii码就是附加消息 LPARAM lParam; // 同上 DWORD time; // 发出消息时刻,DWORD 32位整数 POINT pt; // 发出消息时鼠标的位置 } MSG;
其中对于message,微软对这些行为定义了一系列的宏(WM_开头,Windows Macro,比如WM_LBUTTONDOWN)
二、WinMain
int WINAPI WinMain( HINSTANCE hInstance, // handle to current instance,系统给的实例号 HINSTANCE hPrevInstance, // handle to previous instance,现在这个参数为NULL LPSTR lpCmdLine, // Long Pointer String, 接收命令行参数 int nCmdShow // 窗口显示形式 );其中有两个实例句柄。实例就是一个运行中的程序,对这个实例需要一个标示。
三、窗口创建
1、设计一个窗口类、包括图标,背景,光标类型
2、注册窗口类
3、创建窗口
4、显示或更新窗口
typedef struct _WNDCLASS { UINT style; // 窗口类的类型 CS_开头 Class Style,CS_HREDRAW | CS_VREDRAW 水平重画,垂直重画 WNDPROC lpfnWndProc; // 窗口的回调函数 int cbClsExtra; // 窗口类的附加内存,由属于这个窗口类的所有窗口共享,一般为0 int cbWndExtra; // 一般为0 HINSTANCE hInstance; // 当前应用程序实例号 HICON hIcon; // 加载标准图标时为NULL,用LoadIcon() CreateIcon()函数 HCURSOR hCursor; // HBRUSH hbrBackground; LPCTSTR lpszMenuName; LPCTSTR lpszClassName; } WNDCLASS, *PWNDCLASS