0

ワーカー スレッドで、メイン ダイアログに送信するメッセージを作成します。メイン ダイアログがメッセージを受信し、OnStatusUpdate() 関数に入ったら、LPARAM lParam からメッセージを抽出し、ダイアログの編集ボックスに表示したいと思います。私のメッセージを受け取る代わりに、私が得るのはゴミだけです。

UINT CGDC74xDlg::LeakTstThread( LPVOID pParam )
{
    HWND *phObjectHandle = static_cast<HWND *>(pParam);
    CString strTmp = "It works!";
    CString * message = new CString(strTmp);
    ::PostMessage(*phObjectHandle, WM_LEAK_TEST_THREAD, 0, (LPARAM)message);
    ::Sleep(5000);
    delete phObjectHandle;
    return( 0 );
}

LRESULT CGDC74xDlg::OnStatusUpdate(WPARAM wParam, LPARAM lParam)
{
    LPTSTR lpMessage = (LPTSTR)lParam;
    CString s = lpMessage;
    delete lpMessage;
    GetDlgItem(IDC_EDIT_LEAK_TEST_RESULTS)->SetWindowText(s);
    return 0;
}
4

1 に答える 1

2

あなたの場合、LPARAMは含まれていませんCString。へのポインタが含まれていますCString

したがって、次のように取得します。

CString *message = (CString*)lParam;
于 2012-12-14T20:12:40.537 に答える