今天 在写一个mfc对话框程序,结构是在一个对话框中创建 多个对话框(初始化就创建)。
根据条件 用ShowWindow(SW_SHOW) 来显示 同时隐藏其他对话框(SW_HIDE).
出现 一个问题就是 条件触发后子对话 框显示了但是子对话框不能响应鼠标事件。
原因是:在代码编写过程中,忘记 ShowWindow(SW_HIDE),于是出现了2个对话框同时存在。
2个对话框都在ShowWindow(SW_SHOW)状态下,但是 此时后门ShowWindow的对话框
接收不到鼠标事件。由于ShowWindow(SW_SHOW)是不会改变 输入焦点的。于是焦点还在前一个
对话框,当前对话框就不能响应鼠标事件了。
解决方案:将前面的所有窗口都ShowWindows(SW_HIDE),这样一来当一个窗口ShowWindow(SW_SHOW)
后,在发生 鼠标 事件 mfc会自动找到当前 活动的窗口,并将焦点赋予 那个窗口。