Если вы вновь посмотрите на
Вставка значка Если вы вновь посмотрите на окно диалога (Рисунок 4.1), то увидите справа два элемента типа Picture Control с идентификаторами IDC_RIGHT и IDC_LEFT. Эти элементы необходимо связать с растровыми изображениями значков (ресурсы типа Icon). Так как приложение выполняет функции браузера, то сюда я намереваюсь вставить изображения глаз, которые в принципе можно создать средствами графического редактора Studio.Net. Однако более простым выходом является использование изображений, которые были созданы мастерами своего дела и уже существуют в bmp-файлах. Достаточно много изображений входит в стандартную поставку студии. Они расположены в нескольких папках по адресу ...\Microsoft Visual Studio.Net\Common7\Graphics\icons. Вот алгоритм связывания элемента типа Picture Control с растровым изображением.
Примечание 1 Примечание 1 Если вы найдете изображение одного глаза (скажем, левого) и откроете его в рамках студии, то изображение можно скопировать в новый ресурс типа 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); } |