Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VC Лекции PDF / VC 13 Лек Закладки.pdf
Скачиваний:
44
Добавлен:
15.02.2015
Размер:
420.76 Кб
Скачать

Лекция 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++