18 / 18 / 2
Регистрация: 16.12.2010
Сообщений: 145
1

Изменение цвета фигуры по клику

27.09.2012, 03:22. Показов 5209. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
всем доброго времени суток!
проблема следующая: есть форма, на ней квадрат, по клику на квадрат должен циклически меняться его цвет. а у меня меняется всего один раз

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
LRESULT CALLBACK GraphDemoWndProc(HWND hWnd, UINT Message,UINT wParam,LONG lParam )
{
    HDC hDC,hCompatibleDC;
    PAINTSTRUCT PaintStruct;
    RECT Rect;
    HBITMAP hOldBitmap,hCompatibleBitmap;
    HPEN hOldPen;
    static HPEN Pens[2];
    HBRUSH hOldBrush;
    static HBRUSH Brushes[5];
    int colorRect=1;
    Brushes[0]=(CreateSolidBrush(RGB(255,0,0)));
    Brushes[1]=(CreateSolidBrush(RGB(0,255,0)));
    Brushes[2]=(CreateSolidBrush(RGB(0,0,255)));
    Brushes[3]=(CreateSolidBrush(RGB(255,0,102)));
    Brushes[4]=(CreateSolidBrush(RGB(255,255,0)));
    Pens[0]=(CreatePen(0,1,RGB(255,255,255)));
    Pens[1]=(CreatePen(0,7,RGB(0,0,0)));
    switch(Message)
    {
        case WM_PAINT:
                GetClientRect(hWnd,&Rect); 
                hDC=BeginPaint(hWnd,&PaintStruct); 
                hCompatibleDC=CreateCompatibleDC(hDC); 
                hCompatibleBitmap=CreateCompatibleBitmap(hDC,Rect.right,Rect.bottom); 
                hOldBitmap=(HBITMAP)SelectObject(hCompatibleDC,hCompatibleBitmap); 
                PatBlt(hCompatibleDC, 0,0,Rect.right,Rect.bottom, PATCOPY); 
 
                hOldBrush=(HBRUSH)SelectObject(hCompatibleDC,Brushes[0]);
                Rectangle(hCompatibleDC,10,10,410,410);
                BitBlt(hDC,
                        PaintStruct.rcPaint.left,
                        PaintStruct.rcPaint.top, 
                        PaintStruct.rcPaint.right,
                        PaintStruct.rcPaint.bottom, 
                        hCompatibleDC, 
                        PaintStruct.rcPaint.left,
                        PaintStruct.rcPaint.top,
                        SRCCOPY);
                SelectObject(hCompatibleDC,hOldBitmap);
                DeleteObject(hCompatibleBitmap);
                DeleteDC(hCompatibleDC);
                EndPaint(hWnd,&PaintStruct);
                return 0;
        case WM_LBUTTONDOWN:
                  WORD xPos, yPos;
                  xPos = LOWORD(lParam);
                  yPos = HIWORD(lParam);
                  hDC = GetDC(hWnd); 
                  if ((xPos>=10 && xPos<=410) && (yPos>=10 && yPos<=410)) 
                  {
                    hOldBrush=(HBRUSH)SelectObject(hDC,Brushes[colorRect]);
                    hOldPen=(HPEN)SelectObject(hDC,Pens[1]);
                    Rectangle(hDC,10,10,410,410);
                    if (colorRect!=4) colorRect++;
                    else colorRect=0;
                  }             
                  ReleaseDC(hWnd, hDC); 
                  return 0;
        case WM_DESTROY:
                PostQuitMessage(0);
                return 0;
    }
    return DefWindowProc(hWnd,Message,wParam,lParam);
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.09.2012, 03:22
Ответы с готовыми решениями:

Qt + Opengl изменение цвета по клику мыши
Здравствуйте, начал изучать qt и вместе с ним opengl, никак не могу понять, как например...

Изменение цвета фигуры в Excel через COM
Никак не могу изменить цвет линии Excel в C++. В самом экселе макрос выглядит так:...

Изменение цвета фигуры в зависимости от положения на форме
Условие такое. Есть формула по изменению цвета(в данном случае от жёлтого к красному):...

Изменение цвета фона по клику на чекбокс
Помогите, пожалуйста, решить проблему. Нужно, чтобы при отмеченном чекбоксе цвет фона родительского...

1
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32856 / 21190 / 8151
Регистрация: 22.10.2011
Сообщений: 36,441
Записей в блоге: 8
27.09.2012, 08:37 2
C++
1
static int colorRect=1;
1
27.09.2012, 08:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.09.2012, 08:37
Помогаю со студенческими работами здесь

Изменение цвета и получение информации по клику DrawGrid
Есть задание разработать систему продажи билетов в кинотеатре. Проблема возникла на начальном...

Изменение цвета рамки изображения и надписи на кнопке по клику
Никак не разберусь, как это сделать. Пожалуйста помогите. Задание1: Создайте документ, в котором...

Движения прямоугольника по экрану и изменение цвета по клику мыши
Направление движения прямоугольника по экрану изменяется щелчком по клавише мыши случайным образом....

Изменение цвета фигуры
Ребятки! Помогите, пожалуйста! Во вложении пример того, что мне нужно сделать: Есть...

Изменение цвета фигуры при заполнении ячейки
Здравствуйте. Помогите разобраться и возможно ли это для фигур. В кратце, сделан план зала клуба,...

Изменение цвета названия файла/папки (либо цвета подсветки)
Привет супер уважаемые супер форумчане!) Очень интересно, есть ли какой-то способ изменить цвет...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru