环境VC2008,在文档视图结构中的菜单上加了菜单用于弹出一个派生自CDialog的对话框,响应加到了frame窗口中。
在OnInitDialog中使用SetTimer设置定时器,采用默认响应函数OnTimer。
问题:
1、在菜单的响应函数中使用对话框的DoModal弹出,定时器没有响应,SetTimer的返回值正常,在对话框的PreTranslateMessage函数中发现根本就收不到WM_TIMER消息。
2、将对话框使用Create,ShowWindow的形式创建非模态对话框就可以收到WM_TIMER消息,能够进入到OnTimer中。
百思不得其解!哪位给解释一下,找一下原因??多谢,多谢~~
在OnInitDialog中使用SetTimer设置定时器,采用默认响应函数OnTimer。
问题:
1、在菜单的响应函数中使用对话框的DoModal弹出,定时器没有响应,SetTimer的返回值正常,在对话框的PreTranslateMessage函数中发现根本就收不到WM_TIMER消息。
2、将对话框使用Create,ShowWindow的形式创建非模态对话框就可以收到WM_TIMER消息,能够进入到OnTimer中。
百思不得其解!哪位给解释一下,找一下原因??多谢,多谢~~
而用非模态对话框的话,实际上等于开辟了一个新的子线程,你的主程序(就是那个frme)和对话框各跑各的,自然可以响应定时器事件。
OnInitDialog时,还没弹出对话框吧?