MFC实现窗体初始隐藏

⌚Time: 2022-10-20 12:32:14

👨‍💻Author: Jack Ge

方法一:

有任务栏图标


//在初始化对话框中写如下代码

WINDOWPLACEMENT wpf = { 0 };

wpf.length = sizeof(WINDOWPLACEMENT);//这个必须要写,否则SetWindowPlacement会失败

wpf.showCmd = SW_HIDE;//窗口状态为隐藏

SetWindowPlacement(&wpf);//设置窗口状态**

方法二:

我尝试在OnInitDialog中使用ShowWindow方法隐藏窗口,但是OnInitDialog过程中窗口是不可见的。因此设置无效,正确办法是使用定时器


SetTimer(1,100,NULL);

在定时器中检测窗口状态,如果是可见,就隐藏并且销毁定时器


void CMDlg::OnTimer(UINT_PTR nIDEvent)

{

    // TODO: 在此添加消息处理程序代码和/或调用默认值

    switch (nIDEvent)

    {

    case 1:

        {

            if(IsWindowVisible()){

                ShowWindow(false);

                KillTimer(1);

            }

        }

    default:

        break;

    }

    CDialog::OnTimer(nIDEvent);

}

此方法也会隐藏任务栏图标