我开发了一个使用WindowsMessage控制其他窗口的应用程序。它与我的示例应用程序一起成功运行,该应用程序由C#构建。 但是,然后我尝试使用由VB6.0开发的旧窗口配置我的控制应用程序。这里我有2个问题,
1)以下方法返回false并且未更新textfield。
IntPtr wParam = IntPtr.Zero;
IntPtr lParam = Marshal.StringToHGlobalAuto(text);
bool retVal = Convert.ToBoolean(SendMessage(handle, WM_SETTEXT, wParam, lParam));
有人能帮我解决一下吗?
2)当我在遗留应用程序中扫描子控制器时(使用窗口消息),我发现一些控制器的类名是 ThunderRT6FormDC , ThunderRT6UserControlDC 。这些控制器是什么?
答案 0 :(得分:2)
2) ThunderRT6FormDC 和 ThunderRT6UserControlDC 是Visual Basic特定的类名:VB来自一个名为Thunder的原始项目,所以这个名字很多位和VB代码片段。许多VB窗口类的名称都包含 Thunder ,包括您看到的2个。
1)我的期望是你提取的句柄没有指向正确的窗口:你是使用Spy ++或类似的工具来查看VB6窗口并确定正确的文本窗口,还是你将焦点设置为发送WM_SETTEXT消息之前的文本窗口?