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 руб./мес


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




 294 - Размер элемента и размер диалога / MFC шаг за шагом / Visual C++

Шаг 294 - Размер элемента и размер диалога

Давайте рассмотрим задачу поместить на диалоговую панель элемент управления, например, CListBox и сделать так, чтобы при изменении размера диалоговой панели размер элемента изменялся под размер диалоговой панели.

Создаем приложение MFC AppWizard с именем TestSize типа SDI, а базовый класс для вида выберем CFormView.

Помещаем на диалоговое окно формы, а оно будет иметь такой идентификатор IDD_TESTSIZE_FORM. Элемент управления у нас список ListBox и у него идентификатор по умолчанию будет IDC_LIST1. Скомпилируем и запустим приложение.

294_1.gif (5678 b)

Мы видим, что элемент управления занимает часть окна, а не все окно. Нам бы хотелось, чтобы он занимал все окно. При изменении размеров формы вызывается функция OnSize() класса формы. Давайте ее перегрузим. Это делается в Add Windows Message handles, сообщение WM_SIZE.

void CTestSizeView::OnSize(UINT nType, int cx, int cy) 
{
	CFormView::OnSize(nType, cx, cy);
	// TODO: Add your message handler code here
}

Здесь нам нужно получить ссылку на этот элемент управления и изменить его размер. Давайте сделаем это:

void CTestSizeView::OnSize(UINT nType, int cx, int cy) 
{
	CFormView::OnSize(nType, cx, cy);
	CListCtrl* ct=NULL;
	CRect cr;
	GetClientRect(cr);
	ct=(CListCtrl*)GetDlgItem(IDC_LIST1);
	if (ct) ct->MoveWindow(0,0,cr.right,cr.bottom); 
}

Теперь наш элемент управления будет изменять размеры вместе с окном:

294_2.gif (2875 b)


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