как скрыть CDialogEX из панели задач?(MFC C ++) - PullRequest
1 голос
/ 11 сентября 2011

У меня есть основной кадр, когда кто-то нажимает кнопку, я открываю CDialogEX.

После того, как я открою его, появится пустая вкладка панели задач, без заголовка или значка ...

Я хочу, чтобы оно открывалось как дочернее окно основного фрейма и без вкладки панели задач.

Я пытался использовать стили и прочее, но ничего не работает.

есть идеи?

Ответы [ 2 ]

3 голосов
/ 11 сентября 2011

Я предполагаю, что вы передаете NULL в качестве родительского окна. Передайте дескриптор окна основного окна приложения. Когда вы передаете NULL, созданное окно является неизвестным окном верхнего уровня, и они получают кнопки панели задач.

0 голосов
/ 07 мая 2016

Библиография для вас:

Теперь настоящая работа. Объявить

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

Первая и последняя предоставленные мной ссылки основаны на этом подходе.

...