2014-01-08 5 views
0

Я использую VS2010 для моего приложения MFC SDI. В MainFrame Класс в OnCreate(LPCREATESTRUCT lpCreateStruct) функция Я открываю одно диалоговое окно и на IDCANCLE Повтор из диалогового окна Я хочу закрыть свое приложение. Я использую следующий код для этого же в onCreate Функция.как отключить окно сообщения «Не удалось создать пустой документ» Поле сообщения в приложении MFC SDI

CTermsConditionDlg objTNCDlg; 
if(!objTNCDlg.DoModal() == IDCANCLE){ 
return -1; 
} 

Теперь мой вопрос после возврата. Заявка показывает окно сообщения, как показано на рисунке. Message on close

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

ответ

0

Почему вы так долго помещаете этот диалог в свою инициализацию? Проблема заключается в структуре SDI, которая передает некоторые исходные вещи, которые, как ожидается, будут выполняться всегда. В этом случае всегда ожидается, что мейнфрейм может быть создан. См. Код в CSingleDocTemplate :: OpenDocumentFile

Просто поместите этот код в InitInistance перед вызовом LoadFrame или ProcessShellCommand. В этом случае вы можете легко прекратить работу без проблем.

Другая идея - разрешить создание окна, но просто использовать PostMessage (WM_CLOSE); В этом случае выполняется инициализация, все создается и приложение завершается снова.

+0

извините за последнее, как ваше первое предложение, код уже присутствует в моем файле приложения. и о PostMessage() У меня нет идеи, куда поместить этот код. –

+0

№ Ваш код находится в обработчике OnCreate. И это неправильно. Поместите его только в обработчик InitInstance. Или используйте PostMessage и верните успех в OnCreate. – xMRi

+0

Да, вы правы. Спасибо за Вашу поддержку –