MF C: как сначала показать диалог приветствия? - PullRequest
2 голосов
/ 19 марта 2020

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

BOOL CMyApp::InitInstance()
{
    ...
    // The one and only window has been initialized, so show and update it
    m_pMainWnd->ShowWindow(SW_HIDE);
    //m_pMainWnd->UpdateWindow();
    // call DragAcceptFiles only if there's a suffix
    //  In an SDI app, this should occur after ProcessShellCommand

    CWelcomeDialog welcome_dialog;
    welcome_dialog.DoModal();

    m_pMainWnd->ShowWindow(SW_SHOW);
    m_pMainWnd->UpdateWindow();

    return TRUE;
}

К концу InitInstance (), изначально он использует (SW_SHOW). Сначала я пытаюсь это закомментировать, но это все еще показывает. Поэтому я перехожу на (SW_HIDE). Это работает, но имеет неприятные визуальные артефакты. Есть ли способ перестать показывать главное окно как можно раньше?

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

В общем, как реализовать диалоговое окно приветствия и показать его в центре внимания прежде всего?

...