1.消息处理函数
作用:所谓的消息处理程序指的是对于windows程序是事件驱动的,由此需要消息处理程序来维护windows程序。当使用者更改windows窗口时,windows将此改变的消息发送到windows建立的消息队列中(或直接发送到相应的窗口消息处理程序中),然后等程序将消息发送到相应的窗口消息处理程序,消息处理程序将处理发送到相应的窗口,对其进行改变。
函数:参数:窗口句柄,消息,消息参数,消息参数
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) //所谓的CALLBACK指的是进行函数调用,函数的入栈方式,定义
//处#define CALLBACK _stdcall 。对于LRESULT: 32-bit value returned from a window procedure or callback function,LRESULT指的是longresult即为
//长整形
{
//处理感兴趣的消息
switch(message)
{
case WM_DESTROY:
PostQuitMessage(0); //用户关闭窗口,窗口销毁,程序结束,退出消息循环
return 0;
}
return ::DefWindowProc(hwnd, UINT, wParam, lParam) //将剩余的消息送到系统缺省的消息处理函数中
}
2.应用程序主函数 int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR szCmdLine, UINT iCmdShow) //#define WINAPI _stdcall 该语句定
{ //定义了一个呼叫约定,包括如何生产机械码以在堆栈中放置函数呼叫的参数,许多windows函数呼叫为WINAPI。第一个参数被称为【执行实体句柄】,该
//句柄唯一的标示该程序。
static TCHAR szAppName[] = TEXT("HelloWin"); //窗口类名称, 在只有一个窗口的程序中,程序名称即为窗口类名称
WNDCLASS wndclass; //定制窗口类结构
wndclass,style = CS_HREDRAW | CS_VREDRAW
wndclass.lpfnWndProc = WndProc; // 窗口类别标识了处理窗口消息的窗口消息处理程序,lpfn前缀指的是指向函数的长指标
wndclass.cbClsExtra = 0; //为窗体类别结构预留一些额外空间
wndclass.cbWndExtra = 0; //windows 内部保存的窗体结构中预留一些额外空间 ,且cb前缀指的是字节数
wndclass.hInstance = hInstance; //获得程序的实体执行句柄。
}