【发布时间】:2026-01-02 00:35:01
【问题描述】:
// Main message loop
MSG msg;
ZeroMemory( &msg, sizeof( msg ) );
while(msg.message!=WM_QUIT)
{
if(PeekMessage( &msg, NULL, 0U, 0U, PM_REMOVE ) )
{
TranslateMessage( &msg );
DispatchMessage( &msg );
}
else
{
Render();
}
}
“渲染”功能尚未执行
【问题讨论】:
-
PeekMessage仅当消息队列中有 WM_QUIT 时才会返回 FALSE。只有那个,没有别的。您必须将Render函数移到其他地方,这取决于它应该做什么。 -
@Dialectus 不,队列为空时返回
FALSE。 -
好吧,很难猜出你从这个问题中不断收到什么信息。当您不调用 Begin/EndPaint() 时,我会在 WM_PAINT 上反复生成。
-
哎呀,那里没有
GetMessage。大脑慢,手指快…… -
调试提示:记录消息。查看不断出现的消息并阻止您的渲染运行。然后看看为什么这些消息不断生成。
标签: winapi peekmessage