回 帖 发 新 帖 刷新版面

主题:笨拙的==隐藏窗体==方法 ,出现问题

void __fastcall TForm1::FormCreate(TObject *Sender)
{
        Form1->Visible=false;
}
//-----------------------------------------------------

为什么这个不可以在窗口创建的时候隐藏窗口啊?


void __fastcall TForm1::FormMouseMove(TObject *Sender, TShiftState Shift,
      int X, int Y)
{
        Form1->Visible=false;
}
//-----------------------------------------

这个在鼠标划动时候却是可以隐藏掉的啊?



如果我这里的在创建窗体的时候隐藏窗体的方法有问题的话,有谁可以帮忙,给出个正确的代码吗?
十分感谢! [em10]

回复列表 (共3个回复)

沙发

在OnCreate里面写的不起作用,因为此时Form1还未创建完毕
如果需要Form1一开始就不可见,需要改写函数
virtual void __fastcall TForm1::CreateParams(TCreateParams &Params) {
    // inherited
    Form::CreateParams(Params);

    Params.Style |= ~WS_VISIBLE;
}
那个" ~ "不要弄丢了

板凳

在这个FormCreate()的函数里面写是没有用的,因为那时窗体正在创建中啊,可以打开工程的实现文件。如果没有改名字,就应该叫project1.cpp,在他的try里面添加以下几行代码就可以了:
try
{
     Application->Initialize();
    //以下是添加的
     ShowWindow(Application->Handle,SW_HIDE);
     Application->ShowMainForm=false;
     …………
}
经过这样你的应该程序在运行时就会处于不可见的样子

3 楼

加在formshow这个函数里应该可以

我来回复

您尚未登录,请登录后再回复。点此登录或注册