Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблемы с программным закрытием приложения 
V
    Опции темы
ksili
Дата 28.7.2009, 09:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: нет
Всего: 17



Есть MFC-приложение (не моё, но с исходниками) содержащее много диалогов и трей. 
Надо полностью закрыть приложение из одного из диалогов (не основного). Пытался посылать 1) WM_DESTROY основному диалогу приложения, 2) вызывать его метод OnDestroy, 3) вызывать ::DestroyWindow() c HWND основного диалога - приложение не закрывается.

Стандартно сейчас программа закрывается так: щёлкаем правой кнопкой мыши по трею, в popup-menu выбираем соответствующий пункт. Пытался пойти от этого. У данного пункта меню есть ID, поискал по всем исходникам: этот ID встречается только в файле RC, где собственно и объявлен. Т.е. даже не смог найти, где выполняется обработка данного пункта меню. 

Наверно я туплю. Как ещё можно попытаться закрыть программу?



--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
Alca
Дата 28.7.2009, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 6
Всего: 50



Код

::PostQuitMessage(0);
 ???

Добавлено через 1 минуту и 59 секунд
Цитата

::PostMessage(hMainWnd, WM_CLOSE, NULL, NULL);



--------------------
PM WWW ICQ Skype Jabber   Вверх
ksili
Дата 28.7.2009, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: нет
Всего: 17



Alca, спасибо! ::PostQuitMessage(0); сработал

по WM_CLOSE у меня программа сврачивается в трей, так что я даже не пробовал.

Проблема решена, но всё же охота, как бонус, понять, как может быть пункт меню, который работает, но при этом не имеющий обработчика?


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
Alca
Дата 28.7.2009, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 6
Всего: 50



Цитата

как может быть пункт меню, который работает, но при этом не имеющий обработчика

Может ты его не нашел.  smile 


--------------------
PM WWW ICQ Skype Jabber   Вверх
ksili
Дата 28.7.2009, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: нет
Всего: 17



Понятно, что не нашёл. Но где же его ещё надо было искать?


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0858 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.