定时器中MESSAGEBOX不断出现,不返回?
case WM_TIMER:
InvalidateRect(hwnd,NULL,0);
for(m=0;m<2;m++)
if(move(direction[m],m)==m && playing)
{MessageBox(NULL, TEXT ("Hello, Windows 98!"), TEXT ("圈地游戏"), 0);
playing=0;
KillTimer(hwnd,1);
}
return 0;
//-------------------------------------------------------------------------------------
MESSAGEBOX不断弹出,就是不执行下面的playing=0,为什么?
是不是定时中断与MESSAGEBOX有什么过节?
问题点数:20、回复次数:4Top
1 楼luozhiwei(皮皮罗)回复于 2005-06-03 00:01:47 得分 12
MessageBox是模态窗口,弹出的时候其他代码执行中断在此,试试多线程呢,把messagebox的显示放到新线程中,等待m_iTime后用 sendkeys.send("{ENTER}")Top
2 楼mostideal(三甲)回复于 2005-06-03 00:06:09 得分 2
dingTop
3 楼zdy_8212(zdy_8212)回复于 2005-06-03 01:26:05 得分 6
句柄不一样。它们已经分离为两个块。将MESSAGEBOX嵌入到当前线程中。Top
4 楼wvins(逸岚)回复于 2005-06-03 14:55:28 得分 0
MessageBox是模态窗口,弹出的时候其他代码执行中断在此.
我懂得实在太少了。
其实刚问了我就试出来了。
正如上面所说,弹出的时候,控制权转交给MESSAGEBOX,当前程序段终止于此。下一个时钟中断到来后,又重复以上过程,终止于MESSAGEBOX。
其实把MESSAGEBOX放到最后执行就行了。
谢谢大家的关注。:)Top




