
MDI父窗体属性MdiChildren是已显示MDI子窗体数组。遍历这个数组,可获取所有已显示的子窗体,进而获取各个子窗体的窗口句柄。
例Form1是MDI父窗体;Form2、Form3是MDI子窗体。Form1的窗体代码Form1cs 如下
using System;using SystemWindowsForms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// 设置 Form1 为MDI父窗体
thisIsMdiContainer = true;
}
private void Form1_Load(object sender, EventArgs e)
{
// Form2是Form1的MDI子窗体
Form2 f2 = new Form2();
f2MdiParent = this;
// 显示
f2Show();
// Form3是Form1的MDI子窗体
Form3 f3 = new Form3();
f3MdiParent = this;
// 显示
f3Show();
// 遍历MdiChildren数组,获取所有子窗体的
// 窗体句柄
foreach(Form f in thisMdiChildren)
{
IntPtr h = fHandle;
ConsoleWriteLine(h);
}
// 获取子窗体Form2的窗体句柄
foreach(Form f in thisMdiChildren)
{
if(fName == "Form2")
{
IntPtr h = fHandle;
ConsoleWriteLine("子窗体Form2的句柄为 {0}", h);
break;
}
}
}
}
}
for (HWND hChildWnd = ::GetTopWindow(m_hWnd); hChildWnd != NULL; hChildWnd = ::GetNextWindow(hChildWnd, GW_HWNDNEXT)) { CWnd pWnd = CWnd::FromHandle(hChildWnd); if (pWnd != NULL) { // } }
新建两个窗口,一个父窗口,一个子窗口。
_复翱诨袢∽哟翱谟辛街址椒ǎ谝恢址椒ㄊ牵好扛龆加幸桓_ontentWindow属性, 通过contentWindow可获取子窗口;第二种方法是:window对象有frames属性,它是一个类数组对象,可以通过数字或窗体名进行索引。
_庋胝夷歉龃翱诰涂梢灾付ㄕ夷歉龃翱诹恕
GetDlgItem()//只有一个参数就是你要获取的子窗口的ID,返回值是一个指向CWnd类的指针.该函数可以根据一个ID号获取一个对应的对象指针,在任何派生自CWnd类的类中都可以使用.如果你非要句柄的话.那就
CWnd pWnd= GetDlgItem(/子窗口ID/);
pWnd->m_HWnd;//得到这个子窗口的句柄
以上就是关于C#中如何获取MDI的子窗体句柄全部的内容,包括:C#中如何获取MDI的子窗体句柄、如何用findwindowex遍历某个窗口里的所有子窗口、js多个窗口如何获取指定窗口等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)