EndDialog против DestroyWindow

Привет, я создаю имитацию контекстного меню Windows.

Показать диалог делает следующее:

  1. создает диалог, используя CreateDialogIndirectParam
  2. запускает цикл сообщений:

    while ( ContinueModal() && GetMessage(&msg, NULL, 0, 0) )
    {
    TranslateMessage( &msg );
    DispatchMessage( &msg );
    }
    
  3. В диалоговом окне я ищу событие потерянного фокуса нового окна, я установил ContinueModel флаг ложь и вызов EndDialog / DestroyWindow,

    • призвание EndDialog не убивает мой диалог, DestroyWindow делает. Это нормально, кто-нибудь может объяснить, почему?

Спасибо!
D.

2

Решение

Как сказано в первой строке документации, EndDialog заканчивает модальные диалоги. Ваш диалог не модальный, поэтому EndDialog это неправильная функция. Документация для CreateDialogIndirectParam говорит

Чтобы уничтожить диалоговое окно, используйте функцию DestroyWindow.

6

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]