在 MFC 中,可以通过以下步骤在普通函数中给线程发送消息:

  1. 使用 'PostThreadMessage' 函数向线程发送自定义消息。该函数的参数包括线程ID、消息类型等。

  2. 在线程的消息循环中处理自定义消息。可以通过重写线程的 'PreTranslateMessage' 函数,在函数中判断并处理自定义消息。

下面是一个示例:

// 在普通函数中发送消息
void SendThreadMessage(DWORD dwThreadID, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    ::PostThreadMessage(dwThreadID, uMsg, wParam, lParam);
}

// 线程消息循环中处理消息
BOOL CMyThread::PreTranslateMessage(MSG* pMsg)
{
    if (pMsg->message == WM_MY_CUSTOM_MESSAGE)
    {
        // 处理自定义消息
        // ...
        return TRUE; // 返回TRUE表示消息已处理
    }

    return CWinThread::PreTranslateMessage(pMsg);
}

请注意,'WM_MY_CUSTOM_MESSAGE' 是自定义的消息类型,可以根据具体需求进行定义。

MFC 普通函数发送消息到线程的步骤和示例

原文地址: https://www.cveoy.top/t/topic/qECR 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录