c++ builder 防止多个相同的子窗口同时出现

TForm* TfmMain::FormExist(AnsiString szCaption)
{
    for(int i=0; i<this->MDIChildCount; i++)
    {
        TForm *pForm = this->MDIChildren[i];
        if(pForm->Caption == szCaption)
            return pForm;   // 已存在窗体,返回该窗体
    }
    return NULL;    // 不存在窗体,返回空值
}
 
使用方法:
void __fastcall TfmMain::mnuRegClick(TObject *Sender)
{
    // 门诊挂号管理
    TForm *pForm = FormExist("门诊挂号管理");
    // 如果已存在则激活,否则新建一个字窗体
    if(pForm)
        pForm->SetFocus();
    else
        pForm = new TfmReg(Application);
    pForm->Show();
}
本人新博客网址为:http://www.hizds.com
本博客注有“转”字样的为转载文章,其余为本人原创文章,转载请务必注明出处或保存此段。c++/lua/windows逆向交流群:69148232
原文地址:https://www.cnblogs.com/zhangdongsheng/p/2153500.html