0

我想阅读用户在编辑控件中键入的文本。输入文本并按下按钮后,我想获取文本并将其作为项目添加到组合框中。这就是我在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;

但事情出错了,有时我进入NULL“文本”变量,有时只是用户输入的字符串的第一个字符,有时是奇怪的 ASCII 字符。我在做什么错?有任何想法吗 ?

4

1 回答 1

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]));
于 2013-06-01T23:49:09.900 回答