如何从任务栏隐藏CDialogEX? (MFC C++)

发布于 2024-12-04 03:50:27 字数 154 浏览 1 评论 0 原文

我有主机,当有人按下按钮时我打开一个 CDialogEX。

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

我希望它作为主机的子窗口打开,并且没有任务栏选项卡。

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

有什么想法吗?

I have the main-frame, when someone is pressing a button I open a CDialogEX.

After I open it, it get's an empty task-bar tab, with no title or icon...

i want it to open as a child window of the main-frame and without task-bar tab.

i have tried using styles and stuff, but nothing works.

any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

甜点 2024-12-11 03:50:27

我猜您正在将 NULL 作为父窗口传递。传递主应用程序窗口的窗口句柄。当您传递 NULL 时,创建的窗口是一个无主的顶级窗口,并且它们会获得任务栏按钮。

I'm guessing you are passing NULL as the parent window. Pass the window handle of your main application's window. When you pass NULL the created window is an unowned top-level window and they get taskbar buttons.

靑春怀旧 2024-12-11 03:50:27

一些参考书目:

现在是真正的工作了。 在你的班级中声明一个

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;
}

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

Some bibliography for you:

Now the real work. Declare a

CWnd m_wndHidden;

in your class.

Then implement the following method

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;
}

The first and last link I provided are based on this approach.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文