![]() |
|
|
![]()
|
|
| B2_Russia |
|
|||
![]() В доску свой :) ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 3.7.2003 Где: Тверь Репутация: нет Всего: 1 |
Вобщем приложение MDI В MainFrame все делаю как написано в MSDN
В ресурсы добавил DIALOGBAR Вызываю Wizard соглашаюсь с предложением создать новый класс и... Не нахожу там CDialogBar для того, чтобы унаследоваться от него!!! Наследуюсь от CDialog переписываю родительский класс везде на CDialogBar! F5 -> Ошибка!!! Убираю из CMainFrame::OnCreate все относящееся к нему и всеравно ошибка. Убираю объявление CDlgTools m_wndTools; из MainFrm.h все работает!!! Делаю все аналогично только объявляю его как CDlgTools *m_wndTools; Работает, но при закрытии приложения ошибка и приложение завершается с ликами. Чую что не так создаю. Просвятите как надо, кто знает? |
|||
|
||||
| Dreamer_0x01 |
|
|||
![]() Терминатор ![]() ![]() Профиль Группа: Участник Сообщений: 780 Регистрация: 14.4.2005 Где: Санкт-Петербург Репутация: 9 Всего: 12 |
Именно. Посмотрите иерахию классов MFC: СWnd /CControlBar/CDialogBar и соответственно CWnd/CDialog. Вы пытаетесь наследовать класс от CDialog, а работать с CDialogBar, но ведь класс CDialog не является базовым для CDialogBar. -------------------- Нет ничего невозможного. Есть цели, и есть время и силы на их достижение. |
|||
|
||||
| B2_Russia |
|
|||
![]() В доску свой :) ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 3.7.2003 Где: Тверь Репутация: нет Всего: 1 |
Значит вопрос в другом?
Как правильно создать/работать c CBialogBar? Просто забирать оттуда контролы и работать с ними в CMainFrame? Добавлено @ 23:32 Однако, не стал переопределять класс, просто объявил переменную как CDialogBox все как в MSDN ;) Апшипка! |
|||
|
||||
| Dreamer_0x01 |
|
|||
![]() Терминатор ![]() ![]() Профиль Группа: Участник Сообщений: 780 Регистрация: 14.4.2005 Где: Санкт-Петербург Репутация: 9 Всего: 12 |
а можно ссылку на MSDN, где это описано, и кусок кода для сравнения?
-------------------- Нет ничего невозможного. Есть цели, и есть время и силы на их достижение. |
|||
|
||||
| B2_Russia |
|
|||
![]() В доску свой :) ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 3.7.2003 Где: Тверь Репутация: нет Всего: 1 |
Сцылка: http://msdn.microsoft.com/library/default....olcolCreate.asp
Код один в один... Сам поражаюсь, но знаю что чудес не бывает Может в пределах проекта что намудрил, не знаю
Это сообщение отредактировал(а) B2_Russia - 6.2.2006, 08:57 |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Во первых скажи чего ошибка - компиляции или выполнения.
В первом случае приведи строку, на которую ругается и текст ошибки, во втором - подробности "не работает". Способ замены базового класса в том, что создал визард - вполне нормальный, сама так делала, пока не перестала визардом пользоваться... Только вряд ли все сводится к замене базового класса, наверняка нужно убрать\заменить некоторые методы, ибо как уже сказал Dreamer, это разные классы Так что давай подробнее -------------------- ... |
|||
|
||||
| B2_Russia |
|
|||
![]() В доску свой :) ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 3.7.2003 Где: Тверь Репутация: нет Всего: 1 |
Так по поводу "не-работает как в MSDN" проехали, вопрос почему я не могу унаследоваться от CDialogBar? И обрабатывать все в нем, мне это даже выгоднее в плане модульности, вобщем хочу чтоб было так
Добавлено @ 21:56 Вобщем создал заново проект все сделал аналогично MSDN токма всеже сделал свой класс унаследовав его от CDialogBar Кстати, Dreamer_0x01, я не наследовался от CDialog и ни в коем случае не хотел работать с ним как с диалогом |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Можешь, конечно -------------------- ... |
|||
|
||||
| Dreamer_0x01 |
|
||||
![]() Терминатор ![]() ![]() Профиль Группа: Участник Сообщений: 780 Регистрация: 14.4.2005 Где: Санкт-Петербург Репутация: 9 Всего: 12 |
Да? А это я наверное сам придумал?
То, что ты не объявляешь класс как производный от CDialog, а заменяешь своим, совсем не означает, что визард не налепит всяких соответствующих макросов именно для класса CDialog. -------------------- Нет ничего невозможного. Есть цели, и есть время и силы на их достижение. |
||||
|
|||||
| B2_Russia |
|
|||
![]() В доску свой :) ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 3.7.2003 Где: Тверь Репутация: нет Всего: 1 |
Действительно может налепить, но как с диалогом я с ним не работаю
Конструктор еще пришлось поменять... Повторил снова - все работает, хрен его знает что было не так... |
|||
|
||||
| Dreamer_0x01 |
|
|||
![]() Терминатор ![]() ![]() Профиль Группа: Участник Сообщений: 780 Регистрация: 14.4.2005 Где: Санкт-Петербург Репутация: 9 Всего: 12 |
может быть, все дело было в "Rebuild All" ? -------------------- Нет ничего невозможного. Есть цели, и есть время и силы на их достижение. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |