关于获取子窗体句柄问题
米兰张 2013-07-31 12:39:26 1:程序使用反射机制,动态加载DLL窗体。
2:主程序分为验证窗体及主界面,在验证窗体中能获取主界面窗体句柄,但是当主界面窗体加载DLL窗体(已显示)后,无法获取该DLL窗体句柄。
3:系统环境VS2010+win7 32位系统。
4:主程序中获取句柄方法
//函数声明
[DllImport("User32.dll", EntryPoint = "FindWindowA")]
public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("User32.dll", EntryPoint = "FindWindowEx")]
public static extern IntPtr FindWindowEx(Intprt ParentIntPtr,Intptr ChildIntPtr,string lpClassName, string lpWindowName);
//函数实现
IntPtr ParentIntPtr = new IntPtr(0);
IntPtr ChildIntPtr = new IntPtr(0);
ParentIntPtr = FindWindow(null, "MainForm");
ChildIntPtr=FindWindowEx(ParentIntPtr,Intptr.Zero,null,"窗体1");
ParentIntPt不为0,ChildIntPtr始终为0,将FindWindow的EntryPoint修改为FindWindowExW,FindWindowExA均不行。
反射时设置窗体的函数
NowGetType.InvokeMember("MdiParent", BindingFlags.SetProperty, null, obj, new object[] { this });
在网上看了很多资料也不行,有没有知道的大虾说下,非常感谢!