如何在“另一个”win32应用程序上设置文本

时间:2012-01-17 01:40:41

标签: winapi

我正在使用spy ++并且看到我所拥有的控件在spy ++中具有与十六进制匹配的十进制(在转换之后),我看到父窗口也匹配所以我有一个标签的IntPtr和用于标签的IntPtr表单/窗口但我的SendMessage无法更改目标应用程序中的文本。

另一种方法可能是做这样的事情,但是什么是控制ID,我该如何做到这一点 SetText of textbox in external app. Win32 API

我认为这里的hWnd需要是控件hWnd,对吗?

SendMessageCall(hWnd, WM_SETTEXT, (IntPtr)value.Length, value);

我注意到文本正在工作

SendMessageCall(hWnd, WM_GETTEXT, (IntPtr)sb.Capacity, sb);

我注意到我得到了测试,看到了正确的值,设置了文本但它没有改变,然后使用SendMessage再次获取文本并且它是新值,但应用程序仍显示错误的价值....嗯,我是否需要发送一条重新发送的消息,如果是,那该代码是什么?

感谢, 迪安

1 个答案:

答案 0 :(得分:2)

您不发送强制重绘的窗口消息,而是拨打InvalidateRect(hWnd, NULL, TRUE)