子窗口相对父窗口位置的问题
我想把子窗口一直放在父窗口的中间的位置,以下是代码,其中fmMain是父窗口,fmCtrl是子窗口,这样做虽然可以实现要求,但是在退出程序就会弹出出错提示,不能完全销毁,要手动进入任务管理器中才能关掉程序。请问有更好的方法吗?
void __fastcall TfmMain::FormResize(TObject *Sender)
{
fmCtrl->Left=this->Width/2-fmCtrl->Width/2;
fmCtrl->Top=this->Height/2-fmCtrl->Height;
}
[解决办法]
void __fastcall TfmMain::FormResize(TObject *Sender)
{
if(1==m_Show)
{
fmCtrl->Left=this->Width/2-fmCtrl->Width/2;
fmCtrl->Top=this->Height/2-fmCtrl->Height;
}
}
定义一个bool型变量m_Show标记子窗口的显示状态。在父窗口的OnClose()里将m_Show赋值为0.
哈哈,很笨的方法