![]() |
|
|
![]()
|
|
| Aline |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 470 Регистрация: 22.7.2005 Где: Таруса Репутация: нет Всего: нет |
Мне дали проект, который надо доработать (MFC). В нём после запуска программы сразу открывается диалоговое окно. Мне в программу надо добавить ещё один диалог, который теперь должен открываться первым, а тот который был, должен вызываться из нового нажатием на кнопку. Я так понимаю, что предыдущий проект был создан при помощи Wizard как Dialog (MFC).
Вопрос в том, как теперь мне поменять местами диалоги, так чтобы новый диалог запускался первым? Насколько я поняла из проекта, строки:
и позволяют сразу запустить диалог. Я создала новый диалог, добавила класс и вместо
Написала класс нового диалога. Но при запуске ничего не появляется и как оказалось DoModal возвращает -1. Что делать? |
||||
|
|||||
| voov |
|
|||
![]() Патамушта мы пилоты ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 29.11.2007 Репутация: 8 Всего: 8 |
Возможно чтото со стилями нового диалога. Попробуй создавать новый диалог копированием старого диалог в редакторе ресурсов. И зайди отладчиком внутрь DoModal(), посмотри че там делается, может это наведет на нужную мысль.
|
|||
|
||||
| Aline |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 470 Регистрация: 22.7.2005 Где: Таруса Репутация: нет Всего: нет |
Зашла в DoModal. В строке:
результат становится равным -1 Это может быть из-за того, что нет Parent? hWndParent = 0 И что делать? Зашла в DoModal когда вызывается первый диалог. Оказывается там Parent тоже был равен 0, но там установлены какие то флаги и поэтому окно открывается, т.е. в той же строке
он проходит дальше и обрабатывается:
т.е. выполняется условие,попадает внутрь условия и там уже вызывается окно... Как эти флаги установить то теперь? Это сообщение отредактировал(а) Aline - 30.1.2009, 16:48 |
||||||
|
|||||||
| Aline |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 470 Регистрация: 22.7.2005 Где: Таруса Репутация: нет Всего: нет |
Копирование предыдущего диалога тоже не помогло...
|
|||
|
||||
| voov |
|
|||
![]() Патамушта мы пилоты ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 29.11.2007 Репутация: 8 Всего: 8 |
Проверил. Все прекрасно подменяется. Сравни свойства диалогов, гдето должо отличаться.
|
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Я правильно поняла, что у тебя CreateDlgIndirect false возвращает?
Может, у тебя в новом диалоге используются Common Controls?а инициализировать их ты забыла? -------------------- ... |
|||
|
||||
| Aline |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 470 Регистрация: 22.7.2005 Где: Таруса Репутация: нет Всего: нет |
voov, я просмотрела все свойства, вроде всё совпадает. Я правильно делаю, что свойства диалога смотрю?
Earnest, что за Common Controls? |
|||
|
||||
| Aline |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 470 Регистрация: 22.7.2005 Где: Таруса Репутация: нет Всего: нет |
У меня используется RichEdit, а для него оказывается надо запустить AfxInitRichEdit() перед открытием окна....
|
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
RichEdit - один из Common Controls, но стоит немного особняком - его нужно инициализировать с помощью AfxIninRichEdit, а прочие контролы - это деревья (CTreeCtrl), списки (CListCtrl), закладки (CTabCtrl) и т.л. - все, кто посылает родителю WM_NOTIFY. Им надо вызывать InitCommonControls.
-------------------- ... |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |