关于MFC无法进入OnTimer

star_twinkle 2012-03-14 07:45:45
我写的是基于对话框的程序。
(1)继承CWnd,自定义一个窗口类,如下所示:
class CSceneWnd : public CWnd
{
};

(2)在对话框的函数BOOL CDlg3dTestDlg::OnInitDialog()中设置定时器
SetTimer(100,1000,NULL);//我只设置了这么一个定时器,确定没有被kill掉
并且创建子窗口
CRect rect(7, 7, 300, 300);
//m_sceneWnd是CSceneWnd类型的指针
m_sceneWnd=new CSceneWnd();
m_sceneWnd->Create(NULL,
NULL,
WS_CHILD|WS_VISIBLE,
rect,
this,
0);
(3)运行程序,此时程序无法进入函数void CDlg3dTestDlg::OnTimer(UINT nIDEvent);
(4)此时如果不创建子窗口,而会进入函数void CDlg3dTestDlg::OnTimer(UINT nIDEvent)中
这是为什么呢?如果解决这个问题?


...全文
364 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2012-04-20
  • 打赏
  • 举报
回复
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知

见此回复三日内无回应
我们将强制结帖
相关规定详见界面界面版关于版主结帖工作的具体办法
GPoint 2012-03-15
  • 打赏
  • 举报
回复
我感觉是子窗口中某个操作挂起了主线程。CPU没有给主线程分派时间,无法运行到OnTimer。
在你用OpenGL会玩图以后,加一些检测语句。看看线程是不是被挂起了
jixiang1983 2012-03-15
  • 打赏
  • 举报
回复
KillTimer()放在哪里了?
linxren 2012-03-15
  • 打赏
  • 举报
回复
觉得是别的原因引起的
star_twinkle 2012-03-14
  • 打赏
  • 举报
回复
在窗口中用OpenGL,画了点图形~
Eleven 2012-03-14
  • 打赏
  • 举报
回复
你的子窗口中做了什么?

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧