Страница 1 из 2

Изменение представления

Добавлено: 11 сен 2004, 21:19
Alezis
КАК сделать так что бы при нажатии кнопки в SDI , вместо основного Вью появлялась другое Вью ? т.е. жмём хотя бы даже в меню чего-нить и вместо списка (например) нам появляется что то другое (например) CTreeCtrl &

Добавлено: 13 сен 2004, 14:33
Romeo
А можно несколько пояснее? Куда жмём и где именно появляется? То ли я тупой, то ли слепой уже, никак не пойму :)

Добавлено: 20 сен 2004, 23:16
Alezis
Romeo писал(а):А можно несколько пояснее? Куда жмём и где именно появляется? То ли я тупой, то ли слепой уже, никак не пойму :)
Нет тупой скорее я :lol: Ну да ладно. Короче вот есть обычное SDI приложение, которое построено на базе CListView . Вот тама выбираем какой нить пункт лист контрола и кликаем на него мышью. Надо чтоб этот лист контрол убрался к бабушке а вместо него(например) появилася какайнить форма другая , например на основе диалоговых окон.
Вот! Т.е. или это на SDI не сделаешь ни коим образом, или это в CDocument надо 2 представление регистрировать. ,т.е. вообще как поменять вот это представление. Или же вообще как сделать тоже самое но не на SDI ??? Заранее спасибо. :D :lol: :?:

Добавлено: 21 сен 2004, 05:25
Hup
А разве нет таких свойств. как Visible и Enabled?
Я так понял. что тебе нужно в одном окне просто нужно заранее предопределить контролы, а потом ими умело опериравать через вышеупомянутые свойства(или функции, не помню... же отвык от С++)

Добавлено: 21 сен 2004, 11:47
Romeo
Alezis, если ты настаиваешь на том что View должен именно подмениться, то, боюсь ничем помочь не могу. Т.е. опыта подобного у меня не было и потому нужно разбирать с нуля, что ставит нас на один уровень, а это неприемлемо (форум ведь сделан для того, чтобы более опытные могли делиться с менее опытными).

Единственный совет касается самой изобретённой идеологии. Если вопрос поставить так: что-то щёлкаем и открывается новое окошко с другим View - то реализавть это будет значительно проще (опять-таки, по крайней мере, я с таким сталкивался), да и логичнее, наверное, будет (уж извини, но никак не могу придумать задачу, для которой требуется именно замена View контрола).

Добавлено: 21 сен 2004, 11:53
Romeo
А если делать не на SDI, то Hup прав. Расположи на диалоге все необходимые контролы, а потом виртуозно прячь и показывай лишь те, которые требуются по контексту. Либо создавай и разрушай необходимые контролы (CreateWindow[Ex] и DestroyWindow) - но этот способ менее приемлемый.

Добавлено: 21 сен 2004, 20:15
Alezis
да ты прав наверное Romeo лучше будет в отдельном окне. А с диалогами тож спасибо. Чтож попробуем по-другому.

Добавлено: 22 сен 2004, 02:53
Hup
Alezis, у меня есть примерчик собственноручного извращения... :) Правда не уверен, что именно такой тебе нужен. Могу скинуть

Добавлено: 22 сен 2004, 14:23
Alezis
Hup писал(а):Alezis, у меня есть примерчик собственноручного извращения... :) Правда не уверен, что именно такой тебе нужен. Могу скинуть
Если не трудно скинь на 1005@tut.by. Буду очень благодарен.

Добавлено: 28 сен 2004, 19:36
arris
Alezis, ты если честно поднял аффигенно класную проблему! Столкнулся я с ней года два-три назад! И ты не прав - докопай до конца! Не пожалеешь!!!
Для тех кто не понял: В MFC более менее реализовано сопоставление одному представлению несколько документов, а вот наоборот довольно трудно. Т. е. у вас есть один класс документа, а под каждое другое представление свой класс. Очень удобная штука для реализации сложных приложений, где данные одни и те же, а показывать их надо по разному
К сожалению копал эту проблему давно исходники нарыть будет трудно. В MSDN есть решение этой проблемы, но ссылку тоже не помню. Что-то связанное с RUNTIME_CLASS, или где-то созвучное! Попробуй это стоит того!