我使用user32.dll中的FindWindow方法找到一个窗口并获取句柄,但是可以从句柄获取表单控件吗?并使用它像一个普通的形式?例:
int myhwnd = FindWindow(null, "MyWindow");
form myform = SomeMagic.GetFormFromHandle(myhwnd);
myform.Visible = false;
Run Code Online (Sandbox Code Playgroud)
或者我是否必须继续使用user32.dll中的方法向窗口发送消息?
Onk*_*org 17
如果它是一个托管窗口(您使用System.Windows.Forms创建它,并且它继承自System.Windows.Forms.Control),您可以获得对Control对象的引用
Control.FromHandle(myIntPtr);
Run Code Online (Sandbox Code Playgroud)
然后你得到控件的父级,直到你得到表单.
如果没有,则无法获取Control对象,但您可以做的是创建NativeWindow,并使用AssignHandle将IntPtr句柄分配给对象.这将至少为您提供一些WndProc的访问权限,类似,但就是这样.
| 归档时间: |
|
| 查看次数: |
15871 次 |
| 最近记录: |