奇怪的GetWindowText();错误

时间:2013-09-22 07:08:11

标签: c++ winapi

我正在尝试在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输出为空字符串。

我的错误在哪里?

2 个答案:

答案 0 :(得分:2)

没有为carRegNo分配任何内存。试试这个

WCHAR carRegNo[20];
GetWindowText(hCarRegNo, carRegNo, 20);

答案 1 :(得分: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);
}