上一篇,我们已经知道了,一个窗口程序是以事件作为驱动的,其中事件是由消息循环进行处理,首先用GetMessage得到信息,然后TranslateMessage来对信息进行预处理,最后用DispatchMessage调用窗口对应的窗口过程。
补充:应用程序之间也可以进行通信,PostMessage是把消息放到程序的消息队列,用SendMessage是把消息放到应用程序的窗口过程函数里面。
这一篇,我们来学习一下如何去创建一个窗口,从代码上,我们可以看到,程序从start:开始,然后调用了_WinMain函数。
这就是相当于入口函数。
然后我们做了三大步:
- 注册窗口类
- 建立和显示窗口
- 消息循环(已经分析)
现在我们就从注册窗口类去进行学习。
_WinMain proc
LOCAL @stWndClass:WNDCLASSEX
LOCAL @stMsg:MSG
invoke GetModuleHandle,NULL
mov hInstance,eax
invoke RtlZeroMemory,addr @stWndClass,sizeof @stWndClass
;&