Windows程序的内部运行机制
Windwos程序都是基于消息的,系统为每个应用程序都会分配一个消息队列。应用程序的所有操作都会通知操作系统,操作系统把应用程序所要完成的操作以消息的形式发送给消息队列,应用程序会调用GetMessage()函数从消息队列中读出消息(如:键盘按下,鼠标单击),然后通知操作系统做出相应的反应。
1. WinMain()函数是Windows程序的入口函数,所以 WinMain()函数的编写是Windows程序的第一步。
2.窗口的创建:
(1)设计窗口类(WNDCLASS);
(2)注册窗口类(RegisterClass());
(3)创建窗口(CreaterWindow());
(4)显示及更新窗口(ShowWindow()及UpdateWindow())
在窗口创建完成之后,在WinMain()函数中要编写消息循环,从消息队列中获取消息GetMessage(),经过翻译和投递TranslateMessage()及DispatchMessage()将消息投递给操作系统响应。
3.编写窗口过程函数。
在窗口过程函数中一定要调用系统的DefWindowProc()函数响应默认的消息。
窗口过程函数的书写格式为 LRESULT CALLBACK WindowProc(),CALLBACK是_stdcall宏,_stdcall只是一种函数调用的约定,常用来调用Win32 API,而C++的调用习惯是_cdecl.
具体函数的书写方法和调用细节参看msdn。