GetMessage()函数无限地调用自身(不会出现循环)

时间:2013-07-11 20:08:17

标签: getmessage

我正在实现类似的东西 - 我在下面的代码的else部分有一些消息框..我在调试中得到的是 - 我一次又一次地有相同的消息框而且它没有结束(这使我的程序崩溃,我需要重新启动我的笔记本电脑)..有什么解决方案吗?我正在使用MFC应用程序并在窗口浏览器的预览窗格上创建一个按钮。一切都很好,但这是一个问题,如果我进入下面的循环,我无法出来(我的意思是在DispatchMessage或TranslateMessage中有一些东西一次又一次地调用这个函数)..我不能找到什么???

代码如下 -

while( (bRet = GetMessage( &msg, NULL, 0, 0 )) != 0)
{ 
    if (bRet == -1)
    {
        // handle the error and possibly exit
    }
    else
    {
        TranslateMessage(&msg); 
        DispatchMessage(&msg); 
//Onee message box here
    }
}

1 个答案:

答案 0 :(得分:1)

最后我发现当我回归真实时;在这个循环中,控件将退出循环(但它不是很好的方法)但是这个getmessage对我来说没有用,当我恢复它我的程序工作正常。在它的存在下它有无限循环。 因为我使用CreateDialogParam()创建了对话框,然后通过此CreateDialogParam()调用DialogProc然后我使用WM_Commnands来处理根据应用程序收到的消息,我觉得没有使用此getmessage(如果我错了请指点任何人)