![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| suvolod |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 20.8.2005 Репутация: нет Всего: 1 |
Здравствуйте, помогите разобраться с закладками.
Пишу приложение, в котором главное окно – диалоговое, на этом окне должны располагаться закладки, однако занимать не все пространство диалогового окна, а только его часть. То есть диалоговое окно своего рода контейнер: он содержит элементы управления, определяемые выбранной закладкой и некую общую часть, расположенную внизу и сбоку диалога-контейнера к закладкам никоим образом не относящуюся. Попробовал делать это через PropertySheet – и никак не смог добиться того, чтобы PropertySheet стал частью диалогового окна. Помогите решить проблему! На всякий случай, я пытался сделать это, например, вот так: в качестве родителя для закладок попробовал использовать такой элемент ресурса, как SysTabControl32 (это IDC_TAB в идентификаторах VS2005). То есть я разместил его на основном диалоговом окне (контейнере), затем создал диалоговые окна страницы, далее все по книжке – создал массив структур PROPSHEETPAGE (там указал в качестве параметров диалоги-страницы из ресуров), затем создал странички (фцией CreatePropertySheetPage), ну а затем заполнил структуру заголовка PROPSHEETHEADER, где в качестве hwnd родителя УКАЗАЛ ИМЕННО SysTabControl32, расположенный на основном диалоге. Процедуру инициализации вкладок разместил в обработчике WM_INITDIALOG основного диалога-контейнера… Только ничего из этого не вышло. Мои закладки появляются и висят, пока я их не закрою. И только после этого появляется основное диалоговое окно с пустым (без закладок) SysTabControl32…. |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 33 Всего: 183 |
PropertySheet использовать можно, но геморройно: нужно после создания изменить ему размер, а потом динамически создать дополнительные контролы.
Проще самому работать с TabControl. Примерно так: - в ресурсе диалога расставляешь tabcontrol и общие контролы - создаешь ресурсы-странички так же как и для проперти-щита - в обработчике WM_INITDIALOG создаешь окна для каждой страницы (можно, конечно, и on-demand создавать - т.е. только для активной, как это проперти-щит делает, но проще сразу) - родителем страничек делаешь tab-control, ему добавляешь соответствующие закладки - все странички создаешь невидимыми и со стилем WS_CHILD Дальше ловишь сообщение от закладок и показываешь активную страницу (а остальные скрываешь) В общем, ничего сложного. -------------------- ... |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |