gpt4 book ai didi

c++ - 我可以同时运行 while() 和 switch(messages) 语句吗? (c++)

转载 作者:行者123 更新时间:2023-11-28 01:49:13 25 4
gpt4 key购买 nike

我有一个简单的程序。它看起来像这样:

bool i = fasle;

int WINAPI WinMain(HINSTANCE hThisInstance,
HINSTANCE hPrevInstance,
LPSTR lpszArgument,
int nCmdShow)
{
/*COMMENT TO REPRESENT WNDCLASSEX STUFF*/

return messages.wParam;
}

LRESULT CALLBACK WindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch(message)
{
case WM_CREATE:
CreateWindow(
TEXT("button"),TEXT("Activate"),
WS_VISIBLE | WS_CHILD,
10,
100,
100,
50,
hwnd,
(HMENU) 1,
NULL, NULL
);
CreateWindow(
TEXT("button"),TEXT("Deactivate"),
WS_VISIBLE | WS_CHILD,
10,
250,
100,
50,
hwnd,
(HMENU) 2,
NULL, NULL
);
break;
case WM_COMMAND:
if(LOWORD(wParam) == 1){
i = true;
}
if(LOWORD(wParam) == 2){
i = false;
}
break;
case WM_DESTROY:
PostQuitMessage (0);
break;
default:
return DefWindowProc (hwnd, message, wParam, lParam);
}

return 0;
}

无论如何我都希望 while 语句运行。循环看起来像这样:

while(1)
{
if(i == true)
{
/*DO STUFF*/
}
}

我在哪里可以将我的循环添加到我的代码中以使其永远运行?

最佳答案

Where can I add my loop into my code to make it run forever?

在不同的线程中。

抱歉,这是 GUI 的常态。 Win32 GUI 编程模型是事件驱动的,在事件驱动的系统中,您不能在 GUI 线程上执行长时间运行的操作,因为这样 GUI 线程就永远没有机会处理任何消息。

因此,您必须在不同的线程中移动无限(甚至只是长时间)运行的循环。

但是,这很可能是一个 X-Y 问题。 ( http://xyproblem.info/ )

关于c++ - 我可以同时运行 while() 和 switch(messages) 语句吗? (c++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43699128/

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