2011-05-06 61 views
1

我开发了一个使用WindowsMessage控制其他窗口的应用程序。它与我的示例应用程序(它是由C#构建的)成功工作。 但是,我尝试使用由VB6.0开发的遗留窗口来配置我的控制应用程序。这里我得到了2个问题,对传统应用程序的窗口消息传递

1)以下方法返回false,并且文本字段未被更新。

IntPtr wParam = IntPtr.Zero; 
IntPtr lParam = Marshal.StringToHGlobalAuto(text); 
bool retVal = Convert.ToBoolean(SendMessage(handle, WM_SETTEXT, wParam, lParam)); 

有人能帮我弄明白吗?

2)当我在扫描遗留应用的子控制器(使用窗口消息),我发现了一些控制器,它们的类名称是ThunderRT6FormDCThunderRT6UserControlDC。这些控制器是什么?

回答

2

2)ThunderRT6FormDCThunderRT6UserControlDC是Visual Basic中特定的类名称:VB从名为迅雷的原始项目窜出等名称套牢了很多位和VB代码块。很多VB窗口类都有雷霆这个名字,包括你看到的2。

1)我的期望是你提取的句柄没有指向右边的窗口:你是使用Spy ++还是类似的工具来查看VB6窗口并确定正确的文本窗口,或者你是否将焦点设置为发送WM_SETTEXT消息之前的文本窗口?

+0

我修正了Q1), 我在Windows 7中执行我的遗留应用程序,它已经自动启用了exe的安全性chesk。当我取消选中安全检查WM_SETTEXT工作正常。 – chatcja 2011-05-07 01:57:21

相关问题