|
果使用者按下Esc键或者Ctrl-Break键,那么Windows令wParam等於IDCANCEL,并给对话方块程序发送一个WM_COMMAND讯息。所以,您不用在对话方块程序中加入单独的处理键盘操作,因为通常终止对话方块的按键会由Windows将这两个按键动作转换为WM_COMMAND讯息。
AboutDlgProc函式通过呼叫EndDialog来处理这两种WM_COMMAND讯息:
ABOUT2的视窗讯息处理程式在程式的显示区域中绘制矩形或椭圆时,使用了整体变数iCurrentColor和iCurrentFigure。AboutDlgProc在对话方块中画图时使用了静态区域变数iColor和iFigure。
注意EndDialog的第二个参数的值不同,这个值是在WndProc中作为原DialogBox函式的传回值传回的:
如果DialogBox传回TRUE(非0),则意味著按下了「OK」按钮,然後需要使用新的颜色来更新WndProc显示区域。当AboutDlgProc收到一个WM_COMMAND讯息并且讯息的wParam的低字组等於IDOK时,AboutDlgProc将图形和颜色储存在整体变数iCurrentColor和iCurrentFigure中。如果DialogBox传回FALSE,则主视窗继续使用iCurrentColor和iCurrentFigure的原始设定。
TRUE和FALSE通常用於EndDialog呼叫中,以告知主视窗讯息处理程式使用者是用「OK」还是用「Cancel」来终止对话方块的。不过,EndDialog的参数实际上是一个int值,而DialogBox也传回一个int值。所以,用这种方法 |