使用MDI如何判断那个子窗体是否打开?

LazyFarmer 2005-03-03 03:08:52
使用MDI如何判断那个子窗体是否打开?我使用FindWindow发现只有当From->Caption和From->Name相同时才能得到已打开的子窗体的句柄,否则返回NULL。请问各位大侠还有什么方法么?
...全文
79 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
icwin 2005-03-03
up
回复
sunliwen780502 2005-03-03
int s = 0;
for (int h = 0; h <= Form1->MDIChildCount; h++)
{
if (Form1->MDIChilder[h]->Caption == "卡使用情况")
{
if (Form1->MDIChildren[h]->WindowState == wsMinimized0
{
Form1->MDIChildren[h]->WindowState = wsNormal;
s = 1;
break;
}
}
}

if (s == 0)
{
Application->CreateForm(__classid(TCardUseForm), &CardUseForm);
}
回复
free1688 2005-03-03
可以设置全局变量如果Child打开则为真,否则为假。
回复
我不懂电脑 2005-03-03
void __fastcall TForm1::Button1Click(TObject *Sender)

{
for(int i = MDIChildCount-1; I >= 0; i--)
Edit1->Text = MDIChildren[i]->Caption;
}
回复
我不懂电脑 2005-03-03
void __fastcall TForm1::Button1Click(TObject *Sender)

{
for(int i = MDIChildCount-1; I >= 0; i--)
Edit1->Text = MDIChildren[i]->Caption;
}
回复
magicsnake 2005-03-03
假如你要判断的是子窗体的class为TMDIChild
TMDIChild* Child = NULL;
for(int i=MDIChildCount-1; i>=0; i--)
{
Child = dynamic_cast<TMDIChild*>(MDIChildren[i]);
if (Child!=NULL) break;
}
如果Child不为NULL,则表示已经有子窗体打开
如果是查看指定的子窗体,通过判断Child->Name是否与你定义的子窗体名称一致,如果一致表示该窗体已经打开
回复
发帖
VCL组件使用和开发
创建于2007-08-02

585

社区成员

C++ Builder VCL组件使用和开发
申请成为版主
帖子事件
创建了帖子
2005-03-03 03:08
社区公告
暂无公告