Как преобразовать LPARAM lParam в CString

В моем рабочем потоке я создаю сообщение, которое отправляю в основной диалог. Как только главный диалог получает сообщение и переходит в мою функцию 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

Решение

В твоем случае, LPARAM не содержит CString, Содержит указатель на CString,

Таким образом, вы получите это так:

CString *message = (CString*)lParam;
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]