91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

sendmessage在多線程中的應用

小樊
95
2024-06-28 11:06:31
欄目: 編程語言

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函數向指定窗口發送消息。在主線程中的消息循環中處理接收到的消息,并在消息處理函數中處理收到的消息。通過這種方式,可以實現多線程間的消息傳遞和通信。

0
德令哈市| 巨鹿县| 阳山县| 连城县| 长子县| 施秉县| 天水市| 湟中县| 安多县| 南召县| 宿松县| 平顺县| 永州市| 论坛| 柘荣县| 皮山县| 平邑县| 礼泉县| 长寿区| 辽阳市| 保康县| 双流县| 化隆| 新邵县| 资源县| 西乡县| 宁陕县| 城市| 达日县| 云南省| 天柱县| 台山市| 古丈县| 鄂尔多斯市| 贺州市| 福鼎市| 南投县| 鲁甸县| 界首市| 延边| 铅山县|