【发布时间】:2013-06-01 22:55:11
【问题描述】:
我想阅读用户在编辑控件中键入的文本。
输入文本并按下按钮后,我想获取文本并将其作为项目添加到组合框中。
这就是我在父对话框的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 等字符。我在做什么错?有什么想法吗?
【问题讨论】:
-
Button[2]是如何初始化的?你可能应该使用SendMessageW。 -
button[2] 包含createWindow
Button[2] = CreateWindowW( L"edit", NULL, WS_CHILD | WS_VISIBLE|WS_OVERLAPPED|WS_BORDER, windowWidth - (windowWidth), windowHeigh,windowWidth ,windowHeight, handlW, (HMENU)ID_EDIT,instnc, NULL);创建时编辑框的句柄 -
抱歉,我是想说
text>.> -
这是一个全球性的
LPWSTR -
SendMessageW没有效果。text被定义为LPWSTR text;,当我将LPWSTR text = L"myText"; it always admyText` 放入组合框时,无论用户在编辑控件中输入什么
标签: c++ winapi controls win32gui