![]() |
|
|
![]()
|
|
| ano360 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 305 Регистрация: 22.5.2006 Где: Москва Репутация: нет Всего: нет |
Есть MDI MDF Application можно ли сделать чтобы Child MDIокна были DialogBox ами?
Или сделать чтобы DialogBox вел себя как Child MDI окно: - двигался только в пределе "рабочей области" - при активации DialogBox основное окно оставалось активным, как это происходит при активации child MDI окна может можно при создании указать некий стиль? типа WS_CHILD -------------------- Жизнь есть. |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
нет можно, но тяжело (много кода). Возникает вопрос - зачем? Если тебя интересует создание окна со многими контролами из ресурсов, то может, обойдешься видом - формой? Т.е. как-бы диалогом можно сделать вид внутри чайлд-фрейма. Смотри CFormView. -------------------- ... |
|||
|
||||
| ano360 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 305 Регистрация: 22.5.2006 Где: Москва Репутация: нет Всего: нет |
в принципе идея понята. а можно поподробнее? как сделать вид внутри чайлд фрейма диалогом? можно подробнее указать направление поиска? Добавлено через 5 минут и 50 секунд нашел такой материал. как я понимаю это то на эту тему разговор? http://74.125.77.132/search?q=cache:kkGfk6...mp;client=opera Это сообщение отредактировал(а) ano360 - 4.5.2009, 11:25 -------------------- Жизнь есть. |
|||
|
||||
| ano360 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 305 Регистрация: 22.5.2006 Где: Москва Репутация: нет Всего: нет |
только тут все как то очень сумбурно. сходу не поймешь
я правильно понял? нужно создать класс унаследованный от CFormView написать конструктор в котором как то указазать из какого ресурса брать шаблон для создания вида. создать объект вида и укзатать его как текущий для Child формы. -------------------- Жизнь есть. |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Ну, в принципе, да.
Попробуй для разминки сгенерировать новый MFC-проект визардом и укажи ему, что базовым классом вида будет CFromView. Тогда он тебе все заготовки нагенерирует. Там еще важно ресурс диалога с правильными свойствами создать. А вообще все довольно просто - не сложнее, чем с диалогом или обычным видом. -------------------- ... |
|||
|
||||
| ano360 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 305 Регистрация: 22.5.2006 Где: Москва Репутация: нет Всего: нет |
да не спорю, только вот по крохам собирать по интернету информацию и складывать из нее как из мозайки целостную картину довольно утомительно, хотя с другой стороны довольно интересно
может подкинете ссылочку на место где рассказывается про работу с CFormView, а то мне какие то бессвязные обрывки все попадаются? Это сообщение отредактировал(а) ano360 - 4.5.2009, 18:32 -------------------- Жизнь есть. |
|||
|
||||
| ano360 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 305 Регистрация: 22.5.2006 Где: Москва Репутация: нет Всего: нет |
Сделал как вы сказали
Да. надо свойство Style в PopUp. Нашел что при нажатии File->New вызывается CWinApp::OnFileNew и видимо она и создает новое Сhild окно Допустим. Но где в данном проекте код создающий child окно появляющается сразу при старте приложения....Я уже голову сломал... Это сообщение отредактировал(а) ano360 - 4.5.2009, 19:29 -------------------- Жизнь есть. |
|||
|
||||
| ano360 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 305 Регистрация: 22.5.2006 Где: Москва Репутация: нет Всего: нет |
Сгорем пополам заработало...
Материал брал отсюда:http://forum.sources.ru/index.php?act=ST&f=4&t=49952 Хотя понимания производимых действий как не было так и нет... Да и результат ожидался немного другой. Можно например сделать чтобы не было бордюра(ступеньки такой) по краям Child ? И по прежнему стоит открытым вопрос где же всетаки код создающий новое Child окно Это сообщение отредактировал(а) ano360 - 4.5.2009, 20:21 -------------------- Жизнь есть. |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Проще всего изучать код с помощью дебагера. Окна стандартно создаются в шаблоне документа - что-то вроде CreateNewFrame. Ставишь туда точку прерывания и смотришь по стеку, откуда вызов пришел. -------------------- ... |
|||
|
||||
| ano360 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 305 Регистрация: 22.5.2006 Где: Москва Репутация: нет Всего: нет |
Нашел. спасибо за подсказку. брейкпоинтами я уже давно пользуюсь а вот про стек ничего не знал.
выяснилось что создание первого Child окна происходит при работе кода:
закоментировал этот код. вроде все теперь работает правильно.... однако слижком уж странный код. Не оключил ли я еще что-нибудь важное вместе с этим? -------------------- Жизнь есть. |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Этот код обрабатывает аргументы командной строки и может тебе понадобиться.
Вроде там по умолчанию есть код, который, если не просят открыть документ, создает новый. Вроде здесь (конструктор CCommandLineInfo). Видишь, инициализируется командой FileNew.
Достаточно убрать (заменить FileNothing) и не будет ничего создаваться. -------------------- ... |
|||
|
||||
| ano360 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 305 Регистрация: 22.5.2006 Где: Москва Репутация: нет Всего: нет |
сделал так и теперь все как нужно:
я уж не стал вмешиваться в исходники.... P.S. Большое вам спасибо за помощ -------------------- Жизнь есть. |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Я это и имела в виду, а не вмешательство в исходники. Можно еще ParseCommandLine переопределить, чтобы не засорять код деталями.
-------------------- ... |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |