DoModal()后出现问题。

 今天DoModal一对话框后,发现出现了两个问题

1.接收不到鼠标点击消息(如WM_LUBUTTONUP WM_LUBUTTONDOWN)

2.创建的对话框区域可以被其父窗口的其它的先于此对话框创建的窗口(如按钮)所“侵占”。

看了代码半天没看出什么问题。最后朋友发现是对话框模板中,所设窗口样式为WS_CHILD,

原来是这个原因导致上述状况。正确样式应为WS_POPUP,因为doModal是弹出窗口。若其样式

为WS_CHILD,它就会嵌入到父窗口中,所以其区域有可能与父窗口的其他的控件于重合,发生的状况二.

DoModal一个WS_CHILD样式的对话框,它接受不到鼠标消息(domodal对话框的任何子窗口(如BUTTON)也接受不到)。在此种状况下,由于父窗口等待domodal窗口退出,而domodal无法响应鼠标消息退出,导致应用程序无法退出(若只有这种退出方式),,“死在那里了”。幸好我的domodal窗口原来就有个响应WM_TIMER退出的方式。

所以总结如下:

1.对话框接收不到鼠标消息等。首先检查代码看其是否正确响应。

2.检查模板的各个属性参数的设置,特别是窗口的样式。

3.若想让对话框作为子窗口嵌入其父窗口中,首先要设置其样式为WS_CHILD..再者注意:千万不要以DoModal方式创建此窗口,应当Create这个对话框。。。

你可能感兴趣的:(timer,button)