gpt4 book ai didi

c++ - CWinThread::PumpMessage 做什么

转载 作者:太空狗 更新时间:2023-10-29 20:57:32 27 4
gpt4 key购买 nike

当我调试用 C++ 开发的 Windows 应用程序时,我发现这个函数调用 CWinThread::PumpMessage()。我读过 MSDN以及其他一些要了解的论坛帖子。但仍然不确定它的作用。

有人可以帮助我了解此功能的可用性吗?

最佳答案

这是一个防止窗口锁定的方便函数。它在MFC应用程序中的用法如下:

void PumpWaitingMessages(){
MSG msg;
while (::PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE)){
if (!AfxGetThread()->PumpMessage())
return;
}
}

例如,考虑对话框中的这个函数:

void CMyDialog::OnOK(){
for (int i = 0; i < 50; i++){
PumpWaitingMessages();
Sleep(100);
//do some lengthy calculations
}
MessageBox("done");
CDialog::OnOK();
}

如果您调用上述函数,程序应该将线程锁定 5 秒。但是 PumpWaitingMessages(); 将允许程序响应键盘和鼠标输入。但要小心,因为例如,如果您连续单击两次“确定”按钮,那么程序将关闭对话框两次...

关于c++ - CWinThread::PumpMessage 做什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30388049/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com