1

我试图在我的 Win32 C++ 应用程序中获取textedit控件的文本。dialog我正在使用以下代码块来获取它,并对其进行测试。

HWND hCarRegNo = GetDlgItem( hDlg, IDC_REGNUMBER );

if( hCarRegNo )
{
    LPWSTR carRegNo = NULL;
    GetWindowText(hCarRegNo, carRegNo, 20);
    MessageBox(hDlg, carRegNo, _T("Test"), MB_OK);
}

MessageBox输出是一个空字符串。

我的错误在哪里?

4

2 回答 2

2

不为 carRegNo 分配任何内存。尝试这个

WCHAR carRegNo[20];
GetWindowText(hCarRegNo, carRegNo, 20);
于 2013-09-22T07:14:21.257 回答
0

经过更多研究,我已经解决了这个问题:LPWSTR我不得不使用TCHAR carRegNo[256]来完成这项工作。

HWND hCarRegNo = GetDlgItem( hDlg, IDC_REGNUMBER );

if( hCarRegNo )
{
    TCHAR carRegNo[256] = L"";
    GetWindowText(hCarRegNo, carRegNo, 256);
    MessageBox(hDlg, carRegNo, _T("Test"), MB_OK);
}
于 2013-09-22T07:13:41.577 回答