salexeiy | Дата: Среда, 29.11.2017, 22:13 | Сообщение # 1 |
Лейтенант
Группа: Пользователи
Сообщений: 72
Статус: Offline
| Подскажите, как добавить закладки в редакторе ресурсов FbEdit? Создаю диалог, создаю TabStrip, появляется одно окно без возможности правки содержимого вкладок. Пример, который идёт в проектах, тоже не понял, т.е. каким образом были сделаны две вкладки.
|
|
| |
haav | Дата: Четверг, 30.11.2017, 10:14 | Сообщение # 2 |
Генералиссимус
Группа: Администраторы
Сообщений: 1373
Статус: Offline
| Без стакана не разберешься , да?
В общем дело обстоит так. Контрол TAB по сути контейнер (дочернее окно) с кучкой кнопок , называемых вкладками. Ты можешь создать несколько дочерних окон (вроде IDD_TAB1 , IDD_TAB2), прикрепить их контролу TAB и показывать то дочернее окно, которое тебе нужно в данный момент. То есть нажал на 1 кнопку, показать 1 дочернее окно, а остальные спрятать. Нажал на 2 кнопку, показать 2 дочернее окно, а остальные спрятать и т. д. В реальном приложении , при нажатии кнопок , система шлет сообщение WM_NOTIFY с различными кодами:
TCN_SELCHANGING - перед сменой вкладки TCN_SELCHANGE - после смены вкладки
В итоге , пришел код TCN_SELCHANGING , можно спрятать ненужное окно. Пришел код TCN_SELCHANGE , можно показать нужное.
Создание с нуля сводится к тому, что:
1) Создать главный диалог в визуальном редакторе (в примере IDD_DLG0) 2) Создать контрол TAB в визуальном редакторе. Сбоку в дереве он не отображается, только визуально на диалоге. 3) Создать нужное кол-во диалогов в визуальном редакторе (в примере IDD_TAB1 , IDD_TAB2, но можно создать сколько требуется). Создаются они так же как главный диалог, только стили указываются другие. 3.1) Указать нужные стили для IDD_TAB1 , IDD_TAB2 , IDD_TAB3 .... child -> TRUE , ну и другие посмотри как это сделано в IDD_TAB1 , IDD_TAB2 . Единственно так же правильно будет , если указать стиль Visible в TRUE только для одного дочернего диалога, а остальным дочерним поставить FALSE 4) Создать у каждого дочернего диалога (IDD_TAB1 , IDD_TAB2 , IDD_TAB3 ....) свои дочерние окна (кнопки, тексты и пр.) 5) Перемещаемся в код. Пишем код обработки и создания TAB , либо копируем из FBTabStrip.bas. В функции DlgProc в событии WM_INITDIALOG создается сам контрол TAB и дальше нужное кол-во вкладок (в примере 2 вкладки). Так же придется добавить нужные макроопределения из файла ресурсов вроде:
Код #define IDD_DLG0 1000 #define IDC_TAB1 1001 #define IDC_BTN1 1002
#define IDD_TAB1 1100 #define IDD_TAB2 1200
Иерархия окна выглядит так:
Код Главное окно IDD_DLG0 ----TAB ----------IDD_TAB1 ----кнопки, скроллбары и пр. ----------IDD_TAB2 ----кнопки, скроллбары и пр. ----------IDD_TAB3 ----------кнопки, скроллбары и пр. ----------IDD_TAB...N ----кнопки, скроллбары и пр.
Вот как то так.
Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
|
|
| |
salexeiy | Дата: Четверг, 30.11.2017, 14:27 | Сообщение # 3 |
Лейтенант
Группа: Пользователи
Сообщений: 72
Статус: Offline
| Тут и одного стакана мало будет
Про то, как закладки устроены, я знаю, мне было главное понять, как это делается именно в FbEdit. В делфи как оно: кидаешь на окно виджет закладок и можно визуально каждую закладку редактировать в ихнем мини-редакторе. В FbEdit посложнее будет, оказывается.
Спасибо!
|
|
| |