![]() |
Модераторы: Alexeis |
![]() ![]() ![]() |
|
Brodyaga |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: нет Всего: 2 |
Первый вопрос:
Как запихнуть в терй по условию нажатия на эту кнопку Второй: Как быть с другими диалогами? По нажатию кнопки ОК на которых приложение зависает.. |
|||
|
||||
Brodyaga |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: нет Всего: 2 |
Ну и что... послал я по нажатию на IDOK форме сообщение, чтобы она свернулась.. а она всеровно закрылась...
Она же модально открывается... следовательно в любом случае наверное закроется... Как избежать то этого? |
||||
|
|||||
Brodyaga |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: нет Всего: 2 |
Нашёл такую инфу...
вот ссылочки.. http://4pda.ru/forum/index.php?showtopic=6...aded&start= http://www.rsdn.ru/Forum/message/3010001.flat.aspx как там сказано использовал на диалогах (только не на главном) функцию SHDoneButton после их отображения:
Кнопка ОК действительно исчезла.. появилась кнопка X. Как обработать событие нажатия на эту кнопку?? P.S. Событие OnClose не срабатывает... :( |
|||
|
||||
Brodyaga |
|
||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: нет Всего: 2 |
Так никто и не ответил :(
Жаль.. Вот как это делается: в файле где создаётся объект главного диалога есть функция InitInstance(). В ней наш диалог открываеца как модальный:
При таком подходе сворачивания конечно не получица. Меняем это и открываем диалог как не модальный, убирая при этом кнопку ОК и ставя на её месте X:
После этого обрабатываем в нашем диалоге событие OnCancelMode:
Всё.. Кнопка ОК заменена на Х! И самое главное диалог по нажатию на Х действительно сворачивается! ![]() Это сообщение отредактировал(а) Brodyaga - 20.3.2009, 15:55 |
||||||
|
|||||||
Brodyaga |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: нет Всего: 2 |
Опять вернусь к этому вопросу... для главной формы то сделал.. а как быть с остальными диалоговыми формами?! При нажатию на кнопку ОК которых, приложение виснет, а должно закрывать формы...
Написание обработчика в OnCancelMode() не помогло, так как следом вызывается OnCancelMode() главнйо формы и сворачивает всё формы одной левой... :( проект MFC Smart Device Application, MSVC 2005. |
|||
|
||||
Brodyaga |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: нет Всего: 2 |
Ну что? есть какиенить предположения, очень надо...
|
|||
|
||||
ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: нет Всего: 17 |
Ну у тебя же есть уже свой класс диалогов CMyDialog? Пропиши все эти настройки у него в OnInitDialog , а потом все диалоги в своем приложении создавай как экземляры класса CMyDialog. И у них у всех будет
-------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
Brodyaga |
|
||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: нет Всего: 2 |
Дык мне нужно чтобы у других как раз была кнопка OK, которая бы закрывала окно. А она есть, но при нажатии на неё приложение виснет...
какие эти? Если эти:
То это же я не в InitDialog прописывал, а в InitInstance, главного класса:
Это сообщение отредактировал(а) Brodyaga - 30.10.2009, 08:56 |
||||||
|
|||||||
ksili |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: нет Всего: 17 |
а раньше писал
вот и понял неправильно Ну наверно стоит поставить брекпойнт в оконной функции и посмотреть, что происходит на сообщении WM_CLOSE. -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
||||
|
|||||
Brodyaga |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: нет Всего: 2 |
Да, это я неправильно выразился
Тут нет оконной функции, MFC. Можно подписаться на сообщение WM_CLOSE, но прога туда не переходит :( как быть? |
||||
|
|||||
Brodyaga |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: нет Всего: 2 |
Выкладываю пример, в котором можно наблюдать то, о чём я говорю.
Чтобы увидеть это: 1. Запустите приложение 2. Нажмите кнопку "Открыть форму" 3. На открытой форме нажмите кнопку ОК в правом верхнем углу. Присоединённый файл ( Кол-во скачиваний: 2 ) ![]() |
|||
|
||||
ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: нет Всего: 17 |
Я не наблюдаю зависания. По-моему просто на это нажатие нет никакого действия. Кнопка мигает при каждом нажатии, т.е. реагирует.
-------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
Brodyaga |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: нет Всего: 2 |
А попробуй после нажатия на кнопку ОК(в правом верхнем углу) понажимать на кнопки ОК и Cancel на форме.. |
|||
|
||||
ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: нет Всего: 17 |
После первого нажатия на любую кнопки ОК и Cancel перестают реагировать. Так что по-моему дело не только в кнопке ОК в правом верхнем углу. Если будет время, я ещё посмотрю. -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: нет Всего: 44 |
самый простой способ это не делать приложение на базе диалога. Из-за этого и появляется ок вместо х
или как вариант можно изменить стиль на лету Добавлено через 5 минут и 3 секунды
тебе надо перегрузить методы OnOk & OnCancel |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Программирование мобильных устройств" | |
|
Раздел посвящен программированию мобильных устройств. Все остальные вопросы по мобильным устройствам (КПК, смартфоны, телефоны, фотоаппараты и т.п), |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Платформы Windows Mobile и Windows Embedded | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |