информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
За кого нас держат?Spanning Tree Protocol: недокументированное применениеВсе любят мед
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / beginners
Имя Пароль
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Господа, будьте снисходительны, не бросайтесь сразу штрафовать за, как вам кажется, глупые вопросы - beginners на то и beginners.
Просто если главное окно _уже_ было задано, то обработка его... 23.10.07 00:12  Число просмотров: 2821
Автор: dl <Dmitry Leonov>
<"чистая" ссылка>
> Я только начал MFC изучать, так что пока плохо соображаю,
> что к чему, но не понятно какое отношение в данном случае
> вообще переменная m_pMainWnd имеет к AfxMessageBox
> (допустим мы поменяем сообщение на простое "Hello World"
> без обращения к члену диалога). Если вообще не создавать
> никакого окна и сразу в InitInstance прописать
> AfxMessageBox то оно нормально сработает с нулевым
> m_pMainWnd.

Просто если главное окноужебыло задано, то обработка его закрытия имеет особый смысл для приложения. И после этого функция GetMessage, которая вызывается при создании всех последующих окон искренне считает, что приложение находится на стадии завершения и возвращает ноль, что приводит к практически мгновенному закрытию всех в дальнейшем создаваемых окон. Кстати, если не инициализировать m_pMainWnd, то есть шанс что все заработает как ожидалось.

> > И похоже, что в очередь сообщений уже попало WM_QUIT,
> > которое при дальнейшей обработке приводит к
> немедленному
> > закрытию всех свежесозданных окон. По крайней мере,
> если
> > воткнуть пониже
> Насколько я это понимаю, для CHelloApp такое понятие как
> очередь сообщений появляется только после того, как
> InitInstance вернет значение TRUE - до этого момента никто
> извне никак на его работу повлиять не может. Ну а то что
> WM_QUIT посылается в диалог опять же непонятно каким
> образом прерывает выполнение InitInstance.

Не совсем так. В случае приложения с главным окном-диалогом после завершения InitInstance завершается и все приложение, а качестве его очереди сообщений используется диалоговая.

> > и сходить дебаггером внутрь, то во внутренностях
> Пытался с этим разобраться, но пока совершенно ситуация для
> меня никак не проясняется.
<beginners> Поиск 






Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach