根据这个线程:CreateWindow/CreateDialog的HWND可以是GetMessage';d来自另一个线程?,我似乎无法在另一个使用主线程HWND的线程中使用GetMessage。
我只是试图使用GetMessage获取edittext中的值,GetMessage是从一个新线程调用的。我有什么方法可以做到这一点?
如果要从编辑控件中获取值,实际上根本不使用GetMessage
。GetMessage
用于接收消息,但要从窗口获取文本,您必须向发送消息,即使用SendMessage
。
要发送的消息是WM_GETTEXT
(前面是WM_GETTEXTLENGTH
)。或者更简单的是,使用操作系统为您提供的包装器函数之一——在本例中为GetWindowText
或GetDlgItemText
。它们可以很好地跨线程边界工作(事实上甚至可以跨进程边界)。