【问题标题】:c++ how to get text from textbox by a thread using win32 api [closed]c ++如何通过使用win32 api的线程从文本框中获取文本[关闭]
【发布时间】:2013-11-02 15:30:36
【问题描述】:

我知道如何构建一个 gui 应用程序以及如何制作一个文本框我只是不知道如何在不点击底部(线程)的情况下从文本框获取数据?

我有一个要添加的函数,我可以在 WM_CREATE 中添加什么?

    case WM_CREATE:
        CreateWindow ("edit", 0, WS_CHILD | WS_VISIBLE | WS_BORDER, 5, 5, 130, 20, hwnd, (HMENU) 1000, GetModuleHandle (NULL), NULL);
        CreateWindow ("button", "Click me", WS_CHILD | WS_VISIBLE, 5, 30, 130, 20, hwnd, (HMENU) 1001, GetModuleHandle (NULL), NULL);
        break;

【问题讨论】:

标签: c++ multithreading winapi user-interface textbox


【解决方案1】:

我认为您没有正确使用术语线程。通常,当文本框发送一条消息告诉您用户更改了文本时,您会从文本框中获取文本。向您的 Windproc 添加一个检测 WM_COMMAND 消息的案例,并在此消息中查找来自文本框的 EN_CHANGE 通知。

【讨论】:

  • 是的,当用户更改文本框中的文本时,我想这样做,WM_COMMAND 中的案例开始运行我的代码:) 但是如何向检测 WM_command 消息的 windproc 添加案例并查看对于 EN_CHANGE ?!!对不起,我是 gui 编程的初学者
  • 恐怕还有很多东西要学;这里的答案太多了。请获取一本书或查找有关 Windows API 的教程。对不起,如果这听起来很粗鲁。看例如此处:winprog.org/tutorial 第 9 节涵盖控制通知。
【解决方案2】:

在纯 Windows API 中,可以使用WM_GETTEXT 消息检索窗口的文本(包括文本框)。还有更多特定于text boxes 的消息。

【讨论】:

  • 我知道 WM_GETTEXT 但如何在线程中制作它?!
  • 也许我不明白你真正想要什么。您想在一个线程中获取在另一个线程中创建的编辑框的文本吗?您仍然可以为此使用 GetWindowText 或 WM_GETTEXT。或者你想在不同的线程中处理盒子的 EN_CHANGE 之类的更改通知?
  • 我制作了一个程序,当我按下按钮时获取文本,我搜索并发现我只能通过线程自动获取文本。而且我不知道如何将 GetWindowText 放入线程中?
  • 似乎有一个函数可以指示文本是否更改(EN_CHANGE),我可以按照你说的没有线程的情况下做到这一点,但是如何编写 EN_CHANGE 的代码?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多