![]() |
|
|
![]()
|
|
| Алексеу |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 130 Регистрация: 22.5.2008 Репутация: нет Всего: нет |
Здравствуйте!
Вопрос такой - в WinAPI легко создать основное диалоговое окно программы с помощью .rc Возможно ли это в МФЦ? Мне сказали что невозможно... так ли это? Если нет, то как создать такое окно? |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Никогда больше не слушай того, кто тебе это сказал...
Создавай ресурс диалога точно так же как для программы с API. А приложение проще всего сгенерировать визардом - выбери приложение Dialog Based. -------------------- ... |
|||
|
||||
| Алексеу |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 130 Регистрация: 22.5.2008 Репутация: нет Всего: нет |
Earnest, полностью визардом это неинтересно - не люблю я этот глупый полный автомат. Я лучше полуавтоматом все сделаю, а остальное ручками.
Проблема в том что в MFC, насколько я знаю при отображении модального окна требуется структурa DLGTEMPLATE которая не создается при создании окна с помощью ресурсов :( |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Нет. MFC не отнимает возможностей, которые есть в программировании серез голый API, а только добавляет.
-------------------- ... |
|||
|
||||
| Алексеу |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 130 Регистрация: 22.5.2008 Репутация: нет Всего: нет |
Спасибо за ответ!
Все равно пробую - не получается. Сам понимаю что бред написал, но абсолютно не представляю как отобразить окно, нарисованное в ресурсах. Наресованное окно имеет идентификатор IDD_DIALOG1 То что есть: Код хедера:
Код главного файла
Как можно отобразить это окно? Это сообщение отредактировал(а) Алексеу - 17.7.2008, 17:26 |
||||
|
|||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Это действительно бред. Здесь должен быть вызов базового метода OnInitDialog. Остальное вроде правильно.Только в InitInstance верни FALSE - после модального цикла жизни нет... Если не получится, сделай визардом dialog-based приложение и посмотри, что в InitInstance не хватает... А можешь просто зайти отладчиком в DoModal и посмотреть, где отказ происходит. Раз уж хочешь ручками. -------------------- ... |
|||
|
||||
| Алексеу |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 130 Регистрация: 22.5.2008 Репутация: нет Всего: нет |
К сожалению все равно не выходит. Посижу еще подумаю над этим.
Но хотелось бы тогда задать вопрос - с визардом делать все намного легче, но как создать в нем дополнительное диалоговое окно, которое бы отображалось при нажатии на какую-то кнопку? На учебе мы это абсолютно проскочили - все делали либо вручную полностью с прорисовкой окна или на WinApi, а как это сделать в MFC? Заранее спасибо за ответ |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Возможно, у тебя на диалоге есть какой-то элемент, который требует дополнительной инициализации: рич-эдит или лист-контрол или еще что-то, вот диалог и не создается. Еще раз советую: прежде чем пытаться сделать что-то с нуля, попробуй визардом. Потом, если еть желание разобраться - разберешься по коду.
А диалог делается просто: 1) создаешь диалоговый ресурс 2) создаешь класс-наследник CDialog 3) в обработчике кнопке пишешь:
-------------------- ... |
|||
|
||||
| Алексеу |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 130 Регистрация: 22.5.2008 Репутация: нет Всего: нет |
Большое спасибо за помощь!
Все окна отображаются. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |