我创建一个POPUP类型的窗口,类名为CWndClass,它继承于CWnd,我创建一个线程在窗口上画图。当时间到时,我在父窗口的代码中把窗口销毁了.销毁代码如下
pWnd->ShowWindow(SW_HIDE); //pWnd指向CWndClass的一个指针
pWnd->DestoryWindow();
Delete pWnd;
pWnd = NULL;在CWndClass的析构函数里
CWndClass::~CWndClass()
{
while (m_bThreadRunning)
Sleep(100);
做其它操作.....................
}
在
CWndClass::OnTimer(nIDEvent)
{
m_bThreadRunning = false;
}
在线程结束的后面调用::SetTimer(m_hWnd, (UINT_PTR)m_hWnd, 10, 0);上面的意思是想等线程结束的时候,才删除窗口对象。
我的问题是问,问什么程序线程结束,执行SetTimer函数,但OnTimer没有响应??????
pWnd->ShowWindow(SW_HIDE); //pWnd指向CWndClass的一个指针
pWnd->DestoryWindow();
Delete pWnd;
pWnd = NULL;在CWndClass的析构函数里
CWndClass::~CWndClass()
{
while (m_bThreadRunning)
Sleep(100);
做其它操作.....................
}
在
CWndClass::OnTimer(nIDEvent)
{
m_bThreadRunning = false;
}
在线程结束的后面调用::SetTimer(m_hWnd, (UINT_PTR)m_hWnd, 10, 0);上面的意思是想等线程结束的时候,才删除窗口对象。
我的问题是问,问什么程序线程结束,执行SetTimer函数,但OnTimer没有响应??????
解决方案 »
- 急急急!!!VC打开时自动parsing是怎么回事啊???急急急!!!
- DLL封装Windows消息
- 如何将对串口的操作封装在库里?
- OpenGL高手进
- 各位高手,帮忙给点建议
- VC初学者!
- 为什么我写的hook键盘,只能钩 word 和浏览器,而 notebook 不行
- 用MSCOMM控件发送数据时,CByteArray型数据无法转化成COleVariant型?(处学,请多多指教)
- mfc 怎么判断cd光盘或者dvd光盘是否是坏盘
- 请问我如何才能让用户在clistview中编辑CListCtrl中的每一个单元的内容。
- 怪事,为什么有一个项目里面不能命中断点?
- NDIS中间层驱动中如果获取URL
但我在虚构函数哪里判断的时候,是判断m_hWnd是否为空,但它不是空的呀。
窗口好像还存在呀。我都没有用DestroyWindow了。
请问为什么判断m_hWnd不为空,用IsWindow来判断就返回False了?
To iamyxn
为什么呀飘在窗口的OnDestory里等待线程结束了?析构函数不行?
也就是说,我调用和不调用DestroyWindow,在我delete 对象的时候,在析构函数哪里,它会帮我销毁窗口?
销毁代码如下
pWnd->ShowWindow(SW_HIDE);
pWnd->bStop = TRUE;在CWndClass完成所有任务后(执行中判断bStop),发送一个消息到父窗口,最后完成窗口销毁及对象的清除