Задание 3. Изменение цвета заливки многоугольника в проекте.




Задание 1. Изменить пиктограммы окна и курсора в проекте.

В папку с проектом кидаем 2 файла с расширениями *.ico и *.cur. В проекте, открываем окно ресурсов. В окне ресурсов смотрим папки Icon и Cursor. В них вложены IDI_ICON1 и IDI_ICON2, и IDC_CURSOR1, IDC_CURSOR2 соответственно.

Правой кнопкой вызываем контекстное меню, выбираем пункт «Добавить ресурс» → Icon → Импорт → Выбираем наш файл ico. В папке Icon окна ресурсов появился IDI_ICON3.

Правой кнопкой снова вызываем контекстное меню, выбираем пункт «Добавить ресурс» → Cursor → Импорт → Выбираем наш файл cur. В папке Cursor окна ресурсов появился IDC_CURSOR3.

Сохраняем изменения в файле resource.h

Вносим изменения в код проекта.

// Заполнение структуры WNDCLASS для регистрации класса главного окна.

memset(&wcMain, 0, sizeof(wcMain)); // Очистка полей структуры нулями

wcMain.lpszClassName=szMainClassName; // Имя класса окон

wcMain.lpfnWndProc=(WNDPROC)MainWndProc; // Адрес оконной функции

wcMain.style=CS_HREDRAW|CS_VREDRAW; // Стиль класса окон

wcMain.hInstance=hInst; // Экземпляр приложения

wcMain.hIcon=LoadIcon(hInst,MAKEINTRESOURCE(IDI_ICON1)); // Пиктограмма для окон

wcMain.hCursor=LoadCursor(hInst,MAKEINTRESOURCE(IDC_CURSOR1)); // Курсор мыши для окон

wcMain.hbrBackground=(HBRUSH)COLOR_WINDOW; // Кисть для окон

wcMain.lpszMenuName=MAKEINTRESOURCE(IDR_MENU1); // Ресурс меню окон

wcMain.cbClsExtra=0; // Дополнительная память

wcMain.cbWndExtra=0; // Дополнительная память

 

IDI_ICON1 меняем на IDI_ICON3, IDC_CURSOR1 меняем на IDC_CURSOR2.

Таким образом, должна произойти замена

курсора с на

иконки окна с на

 

Запускаем проект и проверяем.

 

 

Курсор и иконка окна проекта заменились на выбранные нами.

Задание 2. События по нажатию кнопок мыши и клавиш клавиатуры.

Для обработки событий по нажатию кнопок мыши и клавиш клавиатуры используются следующие функции:

- WM_LBUTTONDOWN – одиночное нажатие левой кнопки мыши;

- WM_RBUTTONDOWN – одиночное нажатие правой кнопки мыши;

- WM_LBUTTONDBLCLK – двойной щелчок левой кнопкой мыши;

- WM_RBUTTONDBLCLK – двойной щелчок правой кнопкой мыши;

- WM_KEYDOWN – нажата клавиша на клавиатуре.

 

Пусть по двойному щелчку левой кнопки мыши в MessageBox на экран выводится сообщение «Группа ЦПОИС-18п», а по нажатию клавиши space – «Нажата клавиша space».

Для этого в функцию главного окна проекта добавляем код для обработки события по двойному нажатию левой кнопки мыши:

case WM_LBUTTONDBLCLK:

{

MessageBox(hWnd, "Группа ЦПОИС-18п", "Группа ЦПОИС-18п",

MB_OK);

}; break;

 

и для клавиши space клавиатуры:

 

case WM_KEYDOWN:

{ int nVirtKey = (int) wParam;

switch(nVirtKey)

{

case VK_SPACE:

MessageBox(hWnd,"Нажата клавиша space", "Нажата клавиша space",MB_OK);

break;

}

}

 

Задание 3. Изменение цвета заливки многоугольника в проекте.

 

Задан пятиугольник. По нажатию клавиши a он будет менять цвет на желтый, по нажатию клавиши b – на синий. Цвет указывается в RGB.

Для этого создаем пятиугольник:

case WM_PAINT:

{

PAINTSTRUCT ps; // Структура для рисования

HDC hdc; //Дескриптор контекста рабочей области окна

hdc=BeginPaint(hWnd,&ps);

HPEN hPen=(HPEN)CreatePen(PS_SOLID,2,RGB(255,0,0));

HPEN hOldPen=(HPEN)SelectObject(hdc,hPen);

HBRUSH rnd=CreateSolidBrush(RGB(255,0,0));

HBRUSH old=(HBRUSH)SelectObject(hdc,hbrush);

Polygon(hdc,tri,5);

SelectObject(hdc,hOldPen);

DeleteObject(hPen);

SelectObject(hdc,old);

DeleteObject(hbrush);

EndPaint(hWnd,&ps);

};break;

 

По умолчанию пятиугольник красный. Для изменения цвета заливки многоугольника при нажатии соответствующих клавиш:

case WM_CHAR:

{

CHAR chCharCode = (CHAR) wParam;

switch(chCharCode)

{

case 'a': // Введен прописной символ A

hbrush=CreateSolidBrush(RGB(255,250,0));// Обработка нажатия клавиши 'A'

break;

 

case 'b': // Введен прописной символ B

hbrush=CreateSolidBrush(RGB(0,50,250));// Обработка нажатия клавиши 'B'

break;

 

} InvalidateRect(hWnd,NULL,TRUE);

break;

}

 

Цвет границы остается красным.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-12-18 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: