相关疑难解决方法(0)

CreateWindow/CreateDialog中的HWND可以从另一个线程获取GetMessage吗?

使用Win32 API,是否可以在一个线程中创建一个窗口或对话框,然后从另一个线程收集它的事件?

HWND是否与线程绑定?

尝试下面的人为设法示例,我从未见过GetMessage().

HWND g_hWnd;

DWORD WINAPI myThreadProc(LPVOID lpParam)
{
    while(GetMessage(&msg, hWnd, 0, 0) > 0)
    {
       ...
    }

}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) 
{
    hWnd = CreateDialog(hInstance, MAKEINTRESOURCE(IDD_MYDIALOG), 0, myDlgProc);
    CreateThread(NULL, 0 myThreadProc, NULL, 0, NULL);
    ...
}

但在这里,我做到了.

HWND g_hWnd;
HINSTANCE g_hInstance;

DWORD WINAPI myThreadProc(LPVOID lpParam)
{
    hWnd = CreateDialog(hInstance, MAKEINTRESOURCE(IDD_MYDIALOG), 0, myDlgProc);

    while(GetMessage(&msg, hWnd, 0, 0) > 0)
    {
       ...
    }

}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) …

c c++ windows winapi multithreading

3
推荐指数
1
解决办法
6291
查看次数

处理消息太慢,导致生涩,无响应的用户界面 - 如何使用多个线程来缓解这种情况?

我无法让我的应用响应用户操作.因此,我想在多个线程之间拆分消息处理.

我可以简单地创建多个线程,从所有线程中读取相同的消息队列,并让哪个线程能够处理每个消息?

如果是这样,怎么办呢?

如果没有,你能提出另一种解决这个问题的方法吗?

c++ windows winapi multithreading message-queue

3
推荐指数
1
解决办法
1031
查看次数

标签 统计

c++ ×2

multithreading ×2

winapi ×2

windows ×2

c ×1

message-queue ×1