Иллюстрированный самоучитель по Visual Studio .NET

Вставка значка

Если вы вновь посмотрите на окно диалога (рис. 4.1), то увидите справа два элемента типа Picture Control с идентификаторами IDC_RIGHT и IDC_LEFT. Эти элементы необходимо связать с растровыми изображениями значков (ресурсы типа Icon). Так как приложение выполняет функции браузера, то сюда я намереваюсь вставить изображения глаз, которые в принципе можно создать средствами графического редактора Studio .NET.

Однако более простым выходом является использование изображений, которые были созданы мастерами своего дела и уже существуют в bmp-файлах. Достаточно много изображений входит в стандартную поставку студии. Они расположены в нескольких папках по адресу …\Microsoft Visual Studio .NET\Common7\Graphics\icons. Вот алгоритм связывания элемента типа Picture Control с растровым изображением.

  1. Дайте команду Project Add › Resource (или нажмите CTRL + R).
  2. В окне диалога Add Resource выберите тип ресурса Icon и нажмите кнопку New.
  3. Откройте файл с каким-либо существующим изображением File › Open и т. д., но не забудьте изменить фильтр поиска на (*.*).
  4. Скопируйте найденное и открытое в рамках студии изображение в буфер (CTRL + C).
  5. Перейдите в предыдущее окно с пустым изображением (CTRL + F6) и вставьте его (CTRL + V).
  6. В окне Properties измените идентификатор на тот, который был задан в качестве свойства Image для элемента Picture Control. В нашем случае это IDI_EYERIGHT или IDI_EYELEFT.
  7. Закройте ненужные окна.

Пользуясь этим алгоритмом, создайте две новые картинки и свяжите их с элементами IDC RIGHT и IDC LEFT.

Примечание
Если вы найдете изображение одного глаза (скажем, левого) и откроете его в рамках студии, то изображение можно скопировать в новый ресурс типа Icon и перевернуть (сделать глаз правым), дав команду Image › Flip Horizontal. Исследуйте и другие команды этого меню
.

Элементы управления типа Picture Control можно сделать "чувствительными". Покажем, как ввести в приложение способность реагировать на нажатие кнопки мыши в области, занимаемой нашими изображениями глаз. По схеме, которую вы использовали, когда вводили в класс диалога реакцию на WM_HSCROLL, создайте функцию – обработчик сообщения WM_LBUTTONDOWN (нажата левая кнопка мыши). В тело заготовки для функции-обработчика внесите следующий код:

void CLookDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
CRect left, right;
//====== Узнаем координаты левой картинки
GetDlgItem{IDC_LEFT) › GetWindowRect(Sleft);
//====== Переход к относительным координатам
ScreenToClient(Sleft);
//====== Узнаем координаты правой картинки
GetDlgItem(IDC_RIGHT) › GetWindowRect(Sright);
ScreenToClient(bright);
//====== Объединяем площади двух картинок
left.UnionRect(left,right);
//====== Если координаты курсора внутри этой площади
if (left.PtlnRect(point))
//====== Вызываем диалог About
OnSysCommand(IDM_ABOUTBOX,0);
//====== Вызов родительской версии CDialog::OnLButtonDown(nFlags, point);
}
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.