2015-09-29 73 views
0

我一直在为此挠了一个星期。我使用Windows API和我与如何从Windows API中的文本框中获取文本

editBox = CreateWindowEx(WS_EX_PALETTEWINDOW, TEXT("Edit"), NULL, WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_BORDER | ES_MULTILINE | ES_LEFT | ES_AUTOVSCROLL, 175, 110, 140, 150, hwnd, (HMENU) ID_TEXT, NULL, NULL);

一个文本框和一个按钮

button = CreateWindowEx(WS_EX_PALETTEWINDOW, "BUTTON", "Ok", WS_TABSTOP | WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON, 175, 260, 140, 20, hwnd, (HMENU) ID_BUTTON, NULL, NULL);

,我希望能够按一下按钮,它存储了什么类型的以原始字符串转换为editBox。示例是优先考虑的,但链接和文档也非常感谢! :)

+1

第一步是,你知道如何检测点击按钮? – immibis

回答

2

您可以使用GetWindowText API function来获取编辑控件的文本。

对于带标题的窗口,此函数检索标题。对于编辑控件,它将检索编辑控件的文本。只要忽略任何文件说,如果你遇到它(这是曾经那样),你只限于64K左右。

若要检测按钮单击,在窗口过程中处理WM_COMMAND窗口消息;它被发送到按钮的父窗口。还有一种更复杂的方法,它基于将消息反射回按钮,然后可以自行处理它,并且该方法用于大多数更高级别的框架。但在API级别,请在父窗口的窗口过程中检查WM_COMMAND

+1

对[GetWindowText](https://msdn.microsoft.com/en-us/library/windows/desktop/ms633520.aspx)的调用通常在[GetWindowTextLength](https://msdn.microsoft.com/ en-us/library/windows/desktop/ms633521.aspx),以获得分配正确大小的返回缓冲区所需的信息。 – IInspectable

+0

它非常完美,非常感谢!并感谢您@Inspectable告诉我关于'GetWindowTextLength'! –

相关问题