Как скрыть свой лист?

У меня был соответствующий лист, где я столкнулся с проблемой скрытия листа. Я кратко объясню, что я сделал.

В PropertySheet OnWizardFinish() я пытаюсь скрыть лист и сделать следующее,

BOOL CSecondEditpage::OnWizardFinish()
{
    BOOL bAsyRet = ShowWindowAsync(m_hWnd,SW_HIDE);
    int MsgRet = ::MessageBox(NULL,L"Do you want to restart",L"Test",MB_YESNO | MB_ICONINFORMATION);
    if(IDYES == MsgRet)
    {
      SystemRestart();
    }
    else
    {
      //Do Nothing..
    }

    return CPropertyPage::OnWizardFinish();
}

Таким образом, здесь должно быть видно только окно сообщения и лист должен быть скрыт, это то, что я ожидаю, что ShowWindowAsync делает. Но в фоновом листе все еще существует.

То же самое я попробовал с диалоговым приложением, там оно работает, как и ожидалось, как, фоновое окно скрыто и отображается только окно сообщения.

Больше подробностей:введите описание изображения здесь

И теперь, когда я нажимаю "Готово", лист должен быть скрыт и должен отображать окно с сообщением примерно так:введите описание изображения здесь

Может кто-нибудь, пожалуйста, дайте мне знать, как можно добиться этого в правильном листе мастера.

1 ответ

Решение

Вы пытаетесь скрыть PropertyPage, а не PropertySheet.

Делай как это.

CPropertySheet* prop = (CPropertySheet*)GetParent();
ShowWindowAsync(prop->m_hWnd, SW_HIDE);
Другие вопросы по тегам