《Windows程序设计》 V2 人民邮电出版社
Chap 4 Windows图形界面
1. 资源
应用程序窗口类注册时,一定要指定菜单,否则,出错:
wndclass.lpszMenuName = (LPSTR)IDR_TYPER;
2. SimpleTyper程序
* 单击左键显示座标过程
系统发送WM_LBUTTONDOWN消息,WinProc接收WM_LBUTTON消息
LBUTTON消息处理调用::InvalidateRect
::InvalidateRect触发WM_PAINT消息
WM_PAINT消息响应函数调用GDI API向客户区输出座标位置
注:所有欲改变显示的消息对str变量进行操作,在WM_PAINT响应中使用str对输出进行更新。
* 单击退出菜单过程
单击退出菜单,系统发出WM_COMMAND消息
WinProc取得命令ID:LOWORD(message),发送WM_CLOSE消息
WinProc得到WM_CLOSE消息,不处理,交由DefaultWinProc处理
DefaultWinProc函数发出WM_DESTROY消息
WinProc处理WM_DESTROY消息,投递一个WM_QUIT消息:::PostQuitMessage()
消息循环得到WM_QUIT消息,结束循环,WinMain函数return
主线程释放、进程结束
注:DefWindowProc处理WM_CLOSE的时候,不仅仅调用DestroyWindow发出WM_DESTROY消息。若直接定义WM_CLOSE的响应,简单DestroyWindow,应用程序还没有推出。