我在上一篇文章中说过WinMain()函数没有WndProc()函数重要,实际情况确实如此,程序员主要花心思的地方就在WndProc()中。
在WndProc()函数中,首先是定义了几个变量。分别为HDC,PAINTSTRUCT,RECT类型。要讲他们的话又要扯到GDI,所以还是把他们留在后面,只需知道是定义了几个变量即可。
关键的地方到了,switch ...case,学过c语言的同学是不是感到很亲切。它出现在这当然是为了判断了。括号里的message是哪里来的,仔细看你就会发现是一个传递过来的形参。message自然是消息了,我再重新说一下上一片文章中的消息驱动机制。windows操作系统接收到你传递过来的消息,比如说按了键盘上某个键,然后把这个消息传递给需要的程序。这就是 消息--事件。操作系统怎么得到消息不是我们考虑的问题,那是微软的工程师需要考虑的。我们需要知道消息在哪传递给了我们的程序,又是在哪被处理而产生了一个事件。
让我们看看消息循环的代码,在WinMain()中。
while(GetMessage(&msg,NULL,0,0))//消息循环
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
它主要是三个函数构成的。GetMessage,通过拼写都知道它是从操作系统