
- •ЗАКЛАДКИ
- •Свойства закладки
- •Функции класса CTabCtrl
- •Создание закладки
- •Тестирование обработчика изменения активного корешка
- •Создание страниц закладки
- •Открытие немодальных дочерних диалогов
- •Вычисление положения и размеров страниц
- •Отображение страниц закладки
- •ЛИСТЫ СВОЙСТВ
- •Обмен данными с листами свойств

Лекция 13 |
Закладки |
5 |
добавьте в проект новые диалоговые окна с помощью команды главного меню Insert ► New Form ... . Их число должно соответствовать количеству создаваемых листов свойств;
задайте диалогам для удобства идентификаторы, так чтобы они были пронумерованы, например:
IDD_PAGE1, IDD_PAGE2 ... ;
задайте классам, соответствующим диалогам, для удобства идентификаторы, так чтобы они были пронумерованы, например: CPage1, CPage2 ... ;
разместите на каждом диалоге нужные элементы управления; в окне свойств диалогового окна щелкните на закладке Styles;
всписке Styles выберите значение Child;
всписке Border выберите значение None
Открытие немодальных дочерних диалогов
При работе с закладкой необходимо объявить объекты классов страниц как члены класса CDemoDlg:
class CDemoDlg : public CDialog
{
public:
CTabCtrl m_tab ; CPage1 m_page1 ; CPage2 m_page2 ; CPage3 m_page3 ;
• • •
} ;
//переменная, связанная с элементом управления IDC_TAB
//экземпляр класса первой страницы
//экземпляр класса второй страницы
//экземпляр класса третьей страницы
Далее при инициализации текущего диалога (функция OnInitDialog ( )) нужно:
открыть страницы закладки в режиме немодального диалога с помощью функции Create ( ) ; вычислить положение страниц на текущем диалоговом окне с помощью функции GetPageRect ( ) ; переместить страницы в вычисленное положение с помощью функции MoveWindow ( ) ; отобразить страницу по умолчанию с помощью функции ShowWindow ( ).
Перечисленные выше действия реализует следующий код:
BOOL CDemoDlg :: OnInitDialog ( )
{
• • •
m_page1.Create ( IDD_PAGE1 ) ; |
// открывает немодальные диалоги |
m_page2.Create ( IDD_PAGE2 ) ; |
|
m_page3.Create ( IDD_PAGE3 ) ; |
|
RECT R = GetPageRect ( m_tab ) ; |
// вычисляет положение страниц |
m_page1.MoveWindow ( &R , FALSE ) ; |
// перемещает страницы в вычисленное положение |
m_page2.MoveWindow ( &R , FALSE ) ;
m_page3.MoveWindow ( &R , FALSE ) ;
Выжол Ю.А. Программирование на Visual C++