C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 318 - Подробнее о смене закладок в CTabCtrl / MFC шаг за шагом / Visual C++

Шаг 318 - Подробнее о смене закладок в CTabCtrl

Мы с Вами в предыдущем шаге "Шаг 316 - Подробнее о CTabCtrl" использовали два сообщения, по которым показывали и скрывали окно диалога на закладке. Итак, при смене закладке передается извещение TCN_SELCHANGING.

Это извещение говорит о том, что текущая закладка уходит с экрана. Мы получали указатель на диалоговое окно и скрывали его.

tci.mask = TCIF_PARAM;
m_Tabs.GetItem(iTab, &tci);
CWnd* pWnd = (CWnd *)tci.lParam;
pWnd->ShowWindow(SW_HIDE);

После этого генерируется второе извещение о том, что выбирается закладка.

TCN_SELCHANGE 

Мы с Вами использовали это сообщение для того, чтобы вывести диалоговое окно связанное с этой закладкой на экран:

tci.mask = TCIF_PARAM;
m_Tabs.GetItem(iTab, &tci);
CWnd* pWnd = (CWnd *)tci.lParam;
pWnd->ShowWindow(SW_SHOW);

Обратите внимание на то, что при запуске мы подразумеваем, что активная первая закладка. Поэтому для m_Tabs.SetItem(0, &tci); мы используем Page1->ShowWindow(SW_SHOW);, а для остальных элементов, например, m_Tabs.SetItem(1, &tci) используем Page2->ShowWindow(SW_HIDE);

В диалоговом окне мы обрабатываем извещения о том, что это происходит:

BEGIN_MESSAGE_MAP(CTestTabDlg, CDialog)
	//{{AFX_MSG_MAP(CTestTabDlg)
	ON_WM_SYSCOMMAND()
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	ON_NOTIFY(TCN_SELCHANGE, IDC_TAB1, OnSelchangeTab1)
	ON_NOTIFY(TCN_SELCHANGING, IDC_TAB1, OnSelchangingTab1)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

Извещения вот такие:

TCN_SELCHANGE lpnmhdr = (LPNMHDR) lParam; 
TCN_SELCHANGING lpnmhdr = (LPNMHDR) lParam; 

| |
Автор Каев Артем.
[AD]