我想阅读用户在Edit控件中输入的文本。
输入文本并按下按钮后,我想获取文本并将其作为项添加到组合框中。
这就是我在父对话框的WM_COMMAND
中所做的事情:
case WM_COMMAND:
if(HIWORD(wParam) == BN_CLICKED)
{
if ((HWND)lParam == Button[0])
{
int len = GetWindowTextLengthW(Button[2]) + 1;
GetWindowTextW(Button[2], text, len);
SendMessage(Button[1],(UINT) CB_ADDSTRING,(WPARAM) 0,(LPARAM) text);
}
}
return 0;
但是出了问题,有时我在“text”变量中得到NULL
,有时只是用户输入的字符串的第一个字符,有时候像字符一样奇怪的ASCII。我在做什么wron?任何想法?
答案 0 :(得分:1)
您需要为字符串分配内存。以下是人们期望在C ++ 03中做到这一点:
std::vector<wchar_t> str(len);
GetWindowTextW(Button[2], &str[0], str.size());
SendMessageW(Button[1], CB_ADDSTRING, 0, reinterpret_cast<LPARAM>(&str[0]));