首页主机资讯sendmessage在多线程中的应用

sendmessage在多线程中的应用

时间2024-06-28 18:52:03发布访客分类主机资讯浏览1266
导读:SendMessage函数是 Windows API 中的一个函数,用于向指定的窗口发送一个消息。在多线程中,如果需要向其他线程发送消息,可以使用SendMessage函数来实现线程间通信。 以下是SendMessage函数在多线程中的应用...

SendMessage函数是 Windows API 中的一个函数,用于向指定的窗口发送一个消息。在多线程中,如果需要向其他线程发送消息,可以使用SendMessage函数来实现线程间通信。

以下是SendMessage函数在多线程中的应用示例:

#include <
    Windows.h>
    
#include <
    iostream>
    
#include <
    thread>


void workerThread(HWND hwnd) {
    
    // 向指定窗口发送消息
    SendMessage(hwnd, WM_USER, 0, 0);

}


void messageHandler(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) {

    if (message == WM_USER) {
    
        std::cout <
    <
     "Received WM_USER message" <
    <
     std::endl;

    }

}


int main() {
    
    // 创建窗口并获取窗口句柄
    HWND hwnd = CreateWindowEx(0, L"STATIC", L"Window", WS_OVERLAPPEDWINDOW,
                               CW_USEDEFAULT, CW_USEDEFAULT, 200, 100,
                               NULL, NULL, NULL, NULL);
    

    // 创建工作线程
    std::thread t(workerThread, hwnd);
    

    // 消息循环
    MSG msg;
    
    while (GetMessage(&
msg, NULL, 0, 0)) {
    
        TranslateMessage(&
    msg);
    
        DispatchMessage(&
    msg);

    }
    

    // 等待工作线程结束
    t.join();
    

    return 0;

}
    

在上面的示例中,主线程通过创建窗口并获取窗口句柄,然后启动一个工作线程,在工作线程中调用SendMessage函数向指定窗口发送消息。在主线程中的消息循环中处理接收到的消息,并在消息处理函数中处理收到的消息。通过这种方式,可以实现多线程间的消息传递和通信。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: sendmessage在多线程中的应用
本文地址: https://pptw.com/jishu/684952.html
服务器获取客户端ip的方式_获取SIP的呼叫方式 sendmessage的错误处理方式

游客 回复需填写必要信息