mfc 对话框程序 启动直接隐藏

要想使 程序启动的时候直接隐藏(或者最小化到tray)有如下办法

1  在OnInitDialog ()中
     SetTimer(1,100,null)
   在OnTimer(UINT nIDEvent) 中
      if( nIDEvent==1)
      {
         ShowWindow(sw_hide);
         KillTimer(1);
      }

    ///这种方法 会出现 程序在显示器上 闪一下的效果。。即使 timer 时间很短 ,也会有。

2 重载 WM_WINDOWPOSCHANGING

在重载函数内实现:
   OnWindowPosChanging(WINDOWPOS FAR* lpwndpos) 
   {
       if( !m_bShowWindow)
           lpwndpos->flags &= ~SWP_SHOWWINDOW;
       CDialog::OnWindowPosChanging(lpwndpos);
 
    // TODO: Add your message handler code here
   }
   m_bShowWindow 是我的一个变量,初始值为false

  // 如果 m_bShowWindow  一直为false ,那么程序就见不到人了。。
   所以应该给 True
   在OnInitDialog ()中
     SetTimer(1,1000,null)
   在OnTimer(UINT nIDEvent) 中
      if( nIDEvent==1)
      {
          m_bShowWindow =true;
         KillTimer(1);
      }

 //使用这种方法 程序不会闪一下。。。

你可能感兴趣的:(mfc 对话框程序 启动直接隐藏)