在我的工作线程中,我创建了一条消息,发送到我的主对话框。一旦主对话框收到消息并进入我的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;
}
答案 0 :(得分:2)
在您的情况下,LPARAM
不包含CString
。它包含指向CString
的指针。
所以你会这样得到它:
CString *message = (CString*)lParam;