设为首页 加入收藏

TOP

对话方块(四十)
2010-12-30 21:13:56 来源: 作者: 【 】 浏览:40889
Tags:对话 方块
lgModeless)中,并将讯息回圈改变为:

如果讯息是发送给非模态对话方块的,那么IsDialogMessage将它发送给对话方块中视窗讯息处理程式,并传回TRUE(非0);否则,它将传回FALSE(0)。只有hDlgModeless为0或者讯息不是该对话方块的讯息时,才必须呼叫TranslateMessage和DispatchMessage函式。如果您将键盘加速键用於您的程式视窗,那么讯息回圈将如下所示:

由於整体变数被初始化为0,所以hDlgModeless将为0,直到建立对话方块为止,从而保证不会使用无效的视窗代号来呼叫IsDialogMessage。在清除非模态对话方块时,您也必须注意这一点,正如最後一点所说明的。

hDlgModeless变数也可以由程式的其他部分使用,以便对非模态对话方块是否存在加以验证。例如,程式中的其他视窗可以在hDlgModeless不等於0时给对话方块发送讯息。

最後一项重要的区别:使用DestroyWindow而不是EndDialog来结束非模态对话方块。当您呼叫DestroyWindow後,将hDlgModeless整体变数设定为0。

使用者习惯於从系统功能表中选择「Close」来结束非模态对话方块。尽管启用了「Close」选项,Windows内的对话方块视窗讯息处理程式并不处理WM_CLOSE讯息。您必须自己在对话方块程序中处理它:

首页 上一页 37 38 39 40 41 42 43 下一页 尾页 40/82/82
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇剪贴簿 下一篇功能表及其他资源

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: