读书人

为啥创建了子窗口之后主窗口的定时器

发布时间: 2012-12-16 12:02:32 作者: rapoo

为什么创建了子窗口之后,主窗口的定时器响应不了。
如题,有什么解决方案没?
主窗口中创建另外一个对话框,并且启动主窗口类的定时器,为什么不能响应。哪位大侠提供一下解决方案。在线等。
[最优解释]
代码demo发来给你调下:liqisong611@hotmail.com
[其他解释]
估计与你的SubMonitorDialog 有关,是不是它阻塞了消息循环?
[其他解释]

引用:
估计与你的SubMonitorDialog 有关,是不是它阻塞了消息循环?

[其他解释]
怎么会呢,你代码怎么写的?
[其他解释]


SubMonitorDialog m_WndMonitor;

void CServerTestDlg::OnOk2()
{
m_WndMonitor.Create(IDD_SUBMONITOR );
m_WndMonitor.SetWindowPos(NULL, 0, 0, 500, 500, SWP_NOZORDER);
m_WndMonitor.ShowWindow(SW_SHOW);
SetTimer(0,400,NULL);
}

如果不创建窗口则可以响应定时器超时消息,创建了窗口后定时器起不了。谢谢hurryboylqs



[其他解释]
void CServerTestDlg::OnOk2()
{
m_WndMonitor.Create(IDD_SUBMONITOR );
m_WndMonitor.SetWindowPos(NULL, 0, 0, 500, 500, SWP_NOZORDER);
m_WndMonitor.ShowWindow(SW_SHOW);
SetFocus();//就是加个获取焦点的函数试试,让主窗口获取焦点
SetTimer(0,400,NULL);
}


[其他解释]
我这里试了不行,还有没有其他方法?谢谢hdg3707

[其他解释]
SetTimer(0,400,NULL); 第一个参数不要用0,用1或以上的
[其他解释]
改了定时器ID没有效果,不知道还有其他方法可以尝试吗?谢谢hurryboylqs

[其他解释]
多谢hurryboylqs ,我貌似找到问题所在了。
例子中的SubMonitorDialog m_WndMonitor; 子窗口对象,我定义的是全局的对象,如果放到主窗口类,成为他的成员变量后就行了。
不知道这个如何解释,我现在放到成员变量里就可以了。

读书人网 >VC/MFC

热点推荐