Как приложение MFC может завершить работу само по себе?

StackOverflow https://stackoverflow.com/questions/14491

  •  08-06-2019
  •  | 
  •  

Вопрос

Каков правильный способ для приложения MFC полностью закрыть себя?

Это было полезно?

Решение

Программное завершение работы приложения MFC

 void ExitMFCApp()
   {
        // same as double-clicking on main window close box
        ASSERT(AfxGetMainWnd() != NULL);
        AfxGetMainWnd()->SendMessage(WM_CLOSE);
   }

http://support.microsoft.com/kb/117320

Другие советы

AfxGetMainWnd()->PostMessage(WM_CLOSE);

В поддержку ответа @Mike, причина использования этого метода заключается в том, чтобы запустить правильную последовательность завершения работы.Особенно важно для приложений MDI / SDI, поскольку это дает возможность документам запросить сохранение перед выходом или отменить выход.

@Мэтт Ногучи, ваш метод позволит обойти эту последовательность (что, я полагаю, может быть желаемым эффектом, но вы, вероятно, получили проблемы если у вас короткое замыкание при обычном демонтаже.

PostQuitMessage( [exit code] );

Если это диалоговое приложение, вы можете сделать это, вызвав функцию EndDialog().

Если это приложение на основе SDI / MDI, вы можете вызвать DestroyWindow.Но перед этим вам нужно будет выполнить очистку самостоятельно (закрыть документы, освободить память и ресурсы, уничтожить все дополнительные созданные окна и т.д.).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top