如何隐藏cdialgex从任务栏?(MFC c++)

how to hide CDialogEX from taskbar? (MFC C++)

本文关键字:任务栏 MFC c++ cdialgex 隐藏 何隐藏      更新时间:2023-10-16

我有主机,当有人按下按钮时,我打开cdialgex。

打开后,它得到一个空的任务栏选项卡,没有标题或图标…

我想让它作为主框的子窗口打开,没有任务栏选项卡。

我试过使用样式和东西,但没有效果。

任何想法?

我猜你是通过NULL作为父窗口。传递主应用程序窗口的窗口句柄。当你通过NULL创建的窗口是一个无主的顶级窗口,他们得到任务栏按钮。

给你一些参考书目:

  • http://www.codeguru.com/cpp/frameworks/advancedui/article.php/c3227
  • http://www.codeguru.com/forum/archive/index.php/t - 442093. - html
  • http://social.msdn.microsoft.com/forums/en us/vcgeneral/thread/2d2ef9ad - 487 b - 43 - d2 - 997 b - e0c2540064d6/
  • http://www.progtown.com/topic62404-hide-mainframe-from-taskbar.html
  • http://www.codeproject.com/Articles/191/Creating-an-application-with-no-taskbar-icon

现在是真正的工作。声明

CWnd m_wndHidden;

在你的班级。

然后实现以下方法

BOOL CMyMDIChildFrame::PreCreateWindow(CREATESTRUCT& cs) 
{ 
     if (!__super::PreCreateWindow(cs))
         return FALSE;
     // Create hidden window
     if (!::IsWindow(m_wndHidden.m_hWnd))
     {
        pstrOwnerClass = AfxRegisterWndClass(0);
        if (!m_wndHidden.CreateEx(0, pstrOwnerClass, _T(""), WS_POPUP,
                CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
                NULL, 0))
            return FALSE;
     }
    cs.hwndParent = m_wndHidden.m_hWnd;
    return TRUE;
}

我提供的第一个和最后一个链接是基于这种方法的。