我想创建一个文本框,用户可以在其中输入一些文本并单击“确定”,然后在应用程序代码中获取文本。这是我所做的:
HWND handle_textbox = CreateWindowEx(WS_EX_CLIENTEDGE, "Edit", message.c_str(), WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER | ES_LEFT,
CW_USEDEFAULT, CW_USEDEFAULT, 200, 24, GetActiveWindow(), (HMENU)(101), (HINSTANCE)GetWindowLong (GetActiveWindow(), GWL_HINSTANCE), NULL);
::ShowWindow(handle_textbox, SW_SHOWDEFAULT);
DWORD err = GetLastError();
char output[512];
GetWindowText(handle_textbox, output, 512);
return std::string(output);
但是没有任何反应,GetLastError()
返回 0
。根本没有显示文本框?
最佳答案
CreateWindowEx 的第二个参数必须是预定义的系统类“EDIT”。这指定了您要创建的窗口类型。
然后您的 GetWindowText 需要创建的编辑控件的 HWND。
关于c++ - 无法创建 Win32 文本框来获取用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26806402/