Win32 SDK窗口程序代码
LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam) {
switch (message)
{
case ...
....
break;
.........
case WM_DESTROY:
//void PostQuitMessage(int nExitCode)
//函数的作用是向程序发送WM_QUIT消息,nExitCode应用程序退出代码
PostQuitMessage(0); //调用该函数发出WM_QUIT消息
default: //缺省消息处理函数,以保证所的发往窗口的消息都能被处理
return DefWindowProc(hwnd,message,wParam,lParam);
}
return (0);
}
*/
LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam) {
switch (message)
{
case WM_DESTROY:
PostQuitMessage(0); //调用该函数发出WM_QUIT消息
default: //缺省消息处理函数
return DefWindowProc(hwnd,message,wParam,lParam);
}
return 0;
}
/*
注:
事件驱动的特点:
Windows程序设计围绕着事件或消息的产生驱动产生运行消息处理函数。Windows程序的执行顺序取决于事件发生的顺序,程序的执行是由顺序产生的消息驱动的,程序员可以针对消息类型编写消息处理程序以处理接收的消息,或者发出其他消息以驱动其他处理程序,但是不必预先确定消息的产生顺序。这是面向对象编程中事件驱动的显著特点。 事件驱动编程方法对于编写交互程序很有用处,用这一方法编写的程序使程序避免了死板的操作模式,从而使用户能够按照自己的意愿采用灵活多变的操作模式。
Windows应用程序中的消息传递机制:
VC中存在几种系统定义的消息分类,常用的消息由窗口消息、初始化消息、输入消息、系统消息、剪切板消息、文当界面消息、DDE(动态数据交换)消息、应用程序自定义消息等。应用程序发送的消息发送至消息队列,系统根据消息到达的顺序对消息进行处理,并调用响应的消息处理模块代码。
*/