1. WinMain函数
1: int WINAPI //返回值,如果接收一个WM_QUIT消息时候就终止 2: WinMain( 3: 4: HINSTANCE hinstance,//是一个句柄类型的标识符,是一个标识程序实例的整数(可以理解为进程id),windows设置这个参数的值,并将其传递给程序代码 5: 6: HINSTANCE hPrevInstance, //此程序之前的实例句柄,当前此句柄已经被废止 7: 8: LPSTR lpCmdLine,//一个指向字符串的指针,仅仅在程序名从Dos命令行输入或者从Run对话框输入才有作用 9: 10: int nCmdShow//决定了窗口在初始化时候的显示状态,传入参数可以是: 11: /** 12: SW_HIDE: 隐藏窗口并激活另外一个窗口 13: 14: SW_MINIMIZE:最小化指定的窗口,并且激活在系统表中的顶层窗口 15: 16: SW_RESTORE:激活并显示窗口,若其已经最大或者最小化,则恢复到初始状态 17: 18: SW_SHOW:激活一个窗口并以原来的尺寸和位置显示窗口 19: 20: SW_SHOWMAXIMZED:激活窗口并将其最大化 21: 22: SW_SHOWMINIMIZED:激活窗口并将其最小化(图标显示) 23: 24: SW_SHOWMINNOACTIVE:将一个窗口显示为图标 25: 26: SW_SHOWNA:以窗口的当前状态显示窗口 27: 28: SW_SHOWNOACTIVATE:以窗口的最近一次的尺寸和位置显示窗口 29: 30: SW_SHOWNORMAL:激活并显示窗口。 31: 32: 33: )2. CreateWindow函数
1: HWND //返回一个窗口句柄(如果成功,没成功则返回空) 2: createWindow( 3: LPCTSTR lpClassName, //一字符串,指定了窗口的类名,可以是任何用函数RegisterClass注册的类名 4: LPCTSTR lpWindowName, //指向一个指定窗口名的空结束的字符串指针 5: DWORD dwStyle,//指定创建窗口的风格 6: int x,//窗口的初始水平位置 7: int y,//窗口的初始垂直位置 8: int nWidth,//指明窗口的宽度 9: int nHeight,//指明窗口的高度 10: HWND hWndParen,//指向被创建窗口的父窗口或者所有者窗口的句柄 11: HMENU hMenu,//菜单句柄 12: HANDLE hInstance,//与窗口相关联的模块实例的句柄 13: LPVOID lpParam //指向一个值的指针 14: )
3. WndProc函数
操作系统向应用程序发送一系列消息,如左键按下和左键抬起,应用程序将通过GetMessage等方法最终将消息提交到窗口过程(WndProc)指向一个应用程序定义的窗口过程的指针。
每个窗口会有一个称为窗口过程的回调函数(WndProc),它带有四个参数,分别为:窗口句柄(Window Handle)HWND,消息ID(Message ID)UINT,和两个消息参数(wParam, lParam)WPARAM、LPARAM,
WndProc的第一个参数hWnd就是当前接收消息的窗口句柄,第二个参数就是被传送过来的消息,第三、第四个参数都是附加在消息上的数据,这和MSG结构体是一样的。
1: LRESULT CALLBACK WndProc(//WndProc名称自由定义 2: HWND hwnd, //窗口句柄 3: UINT uMsg, //消息id 4: WPARAM wParam, //消息参数 5: LPARAM lParam //附加消息参数 6: )