首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

怎么使需要显示的窗体在主窗体最小化时也弹出显示

2012-03-11 
如何使需要显示的窗体在主窗体最小化时也弹出显示?程序里一个定时器,15秒刷新一次,发现条件符合时就显示一

如何使需要显示的窗体在主窗体最小化时也弹出显示?
程序里一个定时器,15秒刷新一次,发现条件符合时就显示一个窗体提醒,想了两个办法:

1,用MessageBox弹出窗体,这个窗体在条件符合的时候就弹出来,若没有条件符合就应该不显示,那么在没有条件符合的时候该怎么把上一次条件符合的已经在显示的MessageBox删除呢?

2,在程序里添加了一个窗体,在有条件符合的时候show,在没有条件符合的时候hide。这样做的问题是:当主窗体最小化的时候,或者切换到其他程序的时候,这个窗体即便设置了FormStyle=fsStayOnTop也还是不能弹出来,只有切换到这个程序后,窗体才能显示出来。


请大侠帮助解决,谢谢!!!

[解决办法]
第一个问题,最简的方法是不用MessageBox而自己用Form写一个弹出窗体,这样就可以随意控制它的开关。(以前我就是这样做的)
[解决办法]

探讨
也不论是哪个程序处于激活状态,这个frmTest都要能弹出显示在最上层,就是这个问题没有解决,请大侠帮助啊,是不是有什么激活窗体的函数,能使其在最上层显示的。

[解决办法]
C/C++ code
//上面有点问题//我的系统是GHOST SP3,按照你的方法,没有你那些操作也不能奔跑在前,试试这个,我使用没有问题void __fastcall TForm1::Timer1Timer(TObject *Sender){    if(Form3->Showing)       Form3->Hide();    else    {      //Form3->FormStyle = fsStayOnTop;       Form3->Show();         SetWindowPos(Form3->Handle, HWND_TOPMOST, 0, 0,          0, 0, SWP_NOMOVE|SWP_NOSIZE);    }}//---------------------------------------void __fastcall TForm1::Button3Click(TObject *Sender){    Form3 = new TForm3(this);    Form3->Show();    Timer1->Enabled = true;     SetWindowPos(Form3->Handle, HWND_TOPMOST, 0, 0,        0, 0, SWP_NOMOVE|SWP_NOSIZE);}//------------------- 

热点排行