一、窗口
设计窗口类时:
1 typedef struct _WNDCLASS{ 2 UINT style; //如水平、垂直变化是否重绘,禁用Close,检测双击 3 WNDPROC lpfnWndProc;//窗口过程函数句柄 4 int cbClsExtra;//类附加内存 5 int cbWndExtra;//窗口附加内存 6 HANDLE hInstance;//实例句柄 7 HANDLE hIcon;//图标 8 HCURSOR hCursor;//光标 9 HBRUSH hbrBackground;//刷 10 LPCTSTR lpszMenuName;//菜单名 11 LPCTSTR lpszClassName;//窗口类的名字 12 }WNDCLASS
窗口函数被调用的过程:
1. 将函数地址赋给窗口口的lpfnWndProc
2. 注册窗口类,系统获得编写的窗口过程函数的地址
3. 应用程序获得消息,通过DispatchMessage(&MSG)把消息回传,调用窗口过程函数处理。
二、 WinMain
WinMain是Windows程序的入口,包括创建窗口类,进行消息循环。
1 int WINAPI WinMain( 2 HINSTANCE hInstance,//当前运行的实例句柄 3 HINSTANCE hPrevInstance,//默认NULL 4 LPSTR lpCmdLine,//命令行参数 5 int nCmdShow//窗口显示风格 6 );
一个应用程序可以运行多个实例,每运行一个实例,系统都会分给一个句柄并传给WinMain。
三、消息
typedef struct tagMSG{ HWND hwnd;//所属窗口 UINT message;//消息标志 WPARAM wParam;//附加信息 LPARAM lParam; DWORD time;//进入消息队列的时间 POINT pt;//鼠标当前位置 }MSG;
四、DC
DC 设备描述表。编程时无论显示还是打印,在DC上操作,然后映射到相应设备上。