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
函数向指定窗口发送消息。在主线程中的消息循环中处理接收到的消息,并在消息处理函数中处理收到的消息。通过这种方式,可以实现多线程间的消息传递和通信。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/1084656.html