Форум программистов, компьютерный форум CyberForum.ru

Графика (двигать квадратик по фону) - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.71
legend
 Аватар для legend
28 / 27 / 0
Регистрация: 17.11.2010
Сообщений: 152
23.12.2010, 22:02     Графика (двигать квадратик по фону) #1
привет всем.

Не по теме:

тута квадратик на белом фоне который можно двигать стрелочками..



прогу нашел в учебнике.. Обьяснения приведены не очень ясные..

так как это какбэ примитивно.. сдавать такую прогу .. хотел заменить фон на синий.. а место квадратика сделать звездочку..

думал сделать методом научного тыка.. и по очереди минять цвета чтобы разобраться что за что отвечает..

но у меня получилось нечто страшное .. фон остался белым.. а когда двигал квадратик.. фон затирался и становился синим..

помогите разобраться.. где нужно минять чтобы фон был всегда синим.. и не затирался при движении квадратика

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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include <conio.h>
#include <windows.h>
 
TCHAR title[MAX_PATH];
 
void Kartinka(HDC hdc,int x1,int y1, int x2, int y2);
 
int main(int argc, char* argv[])
{
system("color f9");
GetConsoleTitle(title, MAX_PATH);
HWND hwnd = FindWindow(NULL, title);
HDC hdc = GetDC(hwnd);
RECT rect;
GetClientRect(hwnd, &rect);
 
HBRUSH hbrush = CreateSolidBrush(RGB(75, 220, 180)); 
HPEN hpen = CreatePen(PS_SOLID, 3, RGB(75,220, 180));
HPEN hpen1 = CreatePen(PS_SOLID, 3, RGB(75,220, 180));
HBRUSH hbrush1 = CreateSolidBrush(RGB(220, 120, 180));
int x1 = rect.left, x2 = rect.left + 50;
int y1 = rect.top, y2 =rect.top + 50;
int x3 = x1,x4 = x2,y4 = y2,y3 = y1;
SelectObject(hdc,hpen1);
SelectObject(hdc,hbrush1);
Rectangle(hdc,x1,y1,x2,y2);
 
while (1)
{
int k = getch();
if (k == 224)
k = getch();
switch(k)
{
case 27: 
DeleteObject(hbrush);
DeleteObject(hpen);
DeleteObject(hbrush1);
DeleteObject(hpen1);
ReleaseDC(hwnd, hdc);
return 0;
case 80:
y3+=9;
y4+=9;
break;
case 75:
x3-=9;
x4-=9;
break;
case 77:
x3+=9;
x4+=9;
break;
case 72:
y3-=9;
y4-=9;
break;
}
if (y3<rect.top)
{
y3+=9;
y4+=9;
}
else if (y4> rect.bottom)
{ 
y4-=9;
y3-=9;
}
else if(x3 < rect.left)
{
x3+=9;
x4+=9;
}
else if(x4 > rect.right)
{
x3-=9;
x4-=9;
} 
SelectObject(hdc, hbrush);
SelectObject(hdc,hpen);
Rectangle(hdc, x1, y1,x2,y2);
SelectObject(hdc,hpen1);
SelectObject(hdc,hbrush1);
Rectangle(hdc,x3,y3,x4,y4);
x1=x3;x2=x4;y1=y3;y2=y4;
 
}
 
}
Добавлено через 9 минут
C++
1
2
3
4
HBRUSH hbrush = CreateSolidBrush(RGB(255, 255, 255)); 
HPEN hpen = CreatePen(PS_SOLID, 3, RGB(255,255, 255));
HPEN hpen1 = CreatePen(PS_SOLID, 3, RGB(75,250, 250));
HBRUSH hbrush1 = CreateSolidBrush(RGB(255, 255, 255));
воть.. это оригинал (так ниче не затерает).. в самом начале заменить..

хД.. теме апп

Добавлено через 33 минуты
=( хмм

Добавлено через 2 часа 18 минут
все... справилСО сам =)))

п.с. жаль что тупые темы низя автору удалить
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.12.2010, 22:02     Графика (двигать квадратик по фону)
Посмотрите здесь:

C++ Графика
C++ Графика
C++ Графика[c++]
C++ [C++] Графика
C++ Графика
C++ графика в си++
Графика на С++ C++
Графика в Си++ C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 23:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru