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这个对话框。。。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值