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

         

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


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

  • Дайте команду Project Add > Resource (или нажмите Ctrl+R).

  • В окне диалога Add Resource выберите тип ресурса Icon и нажмите кнопку New.

  • Откройте файл с каким-либо существующим изображением File > Open и т. д., но не забудьте изменить фильтр поиска на (*.*).

  • Скопируйте найденное и открытое в рамках студии изображение в буфер (Ctrl+C).

  • Перейдите в предыдущее окно с пустым изображением (Ctrl+F6) и вставьте его (Ctrl+V).

  • В окне Properties измените идентификатор на тот, который был задан в качестве свойства Image для элемента Picture Control. В нашем случае это IDI_EYERIGHT или IDI_EYELEFT.

  • Закройте ненужные окна.

    Пользуясь этим алгоритмом, создайте две новые картинки и свяжите их с элементами 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);

    }




    Содержание раздела