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

Сознатие графического приложения (Создать класс-наследник от FIGURE) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Переписать, чтобы значения стали аргументами функции http://www.cyberforum.ru/cpp-beginners/thread818061.html
Добрый всем. Вот у меня есть программка но немного не правильный код. Значит вот условие: Написать функцию, находящую корни уравнения методом хорд. Аргументы этой функции: · указатель на функцию, задающую уравнение; · интервал ; · точность ε. Найти корни следующих уравнений: 3*x2-150*sin(x)=0 ex/2-x3+50=0 x3-x2-50=0 3x-x2=0
C++ Сортировка массива по возрастанию Задача состоит в следующем. Сортировать двумерный массив по возрастанию, методом выбора максимума, согласно данному рисунку. http://img13.imageshost.ru/img/2013/03/25/image_51503349e47de.jpg Ввод матрицы осуществляется с клавиатуры. Если кто в курсе, как это осуществить напишите пожалуста. Спасибо. Добавлено через 3 часа 54 минуты Для примера лучше вот так взять 5 на 5 более наглядно,... http://www.cyberforum.ru/cpp-beginners/thread818060.html
точка входа в процедуру не найдена в библиотеке dll C++
пытаюсь подключить библиотеку вот такая ошибка, как бы поправить?
C++ Дан текст. Преобразовать его по следующему правилу
Дан текст. Преобразовать его по правилу: если нет символа "*", то оставить его без изменения, иначе заменить каждый символ, встречающийся после первого вхождения символа "*" на символ "_". Ничего не получается( Пожалуйста помогите, заранее благодарен)
C++ Вычислить значение исходя из условия http://www.cyberforum.ru/cpp-beginners/thread818039.html
http://s017.***********/i429/1303/83/7957d88f6dc0.jpg Заранее спасибо =)
C++ Среди треугольников с вершинами в заданном множестве точек на плоскости Среди треугольников с вершинами в заданном множестве точек на плоскости указать такой, стороны которого содержат максимально число точек заданного множества. Как я поняла сначала создать два массива координаты X и Y Потом перебираем точки Первый цикл: что бы тч не лежали на одной прямой... А дальше... что??( подробнее

Показать сообщение отдельно
mmc11
0 / 0 / 0
Регистрация: 25.02.2013
Сообщений: 6
06.05.2013, 16:49  [ТС]     Сознатие графического приложения (Создать класс-наследник от FIGURE)
Написал программу см. ниже. Подскажите как сделать, что бы квадрат двигался от нажания мыши.
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
//---------------------------------------------
// oaee usergui.h
#pragma once
#include <stdio.h>
#include "painter.h"
//---------------------------------------------------------------
// aaciaue eeann aey anao oeao?
//---------------------------------------------------------------
class FIGURE
{
public:
FIGURE() {}
~FIGURE() {}
virtual void draw(PAINTER* painter, RECT* rc) = 0;
virtual bool inside(int x, int y) {return false;}
// ?aaeoey ia niauoea
virtual void on_char(char ch){}
virtual void on_mousemove(int x, int y, bool ctrl_down){}
virtual void on_lbtn_down(int x, int y){}
virtual void on_lbtn_up(int x, int y){}
};
//---------------------------------------------------------------
// i?eia? oeao?u ?1
//---------------------------------------------------------------
#define ESCAPE 27
class FIGURE_WITHINPUT : public FIGURE
{
public:
FIGURE_WITHINPUT()
{
str[0] = 0;
nchars = 0;
}
~FIGURE_WITHINPUT()
{
}
virtual void draw(PAINTER* painter, RECT* rc)
{
// auaiaei oaeouo? no?ieo ia ye?ai
painter->text(20, 20, str);
}
 
virtual void on_char(char ch)
{
// ia i?aauneea ee no?iea 100 neiaieia?
if (nchars >= 100)
return;
if (ch == ESCAPE)
{
// i?e ia?aoee ia ESC oaaeyai aaaaaiio? no?ieo
nchars = 0;
}
else
{
// aiaaaeyai iiaue neiaie a eiiao no?iee
str[nchars++] = ch;
str[nchars] = 0;
}
}
private:
CHAR str[100];
int nchars;
};
//---------------------------------------------------------------
// i?eia? oeao?u ?2
//---------------------------------------------------------------
class FIGURE_WITHMOUSE : public FIGURE
{
public:
FIGURE_WITHMOUSE()
{
x = 50;
y = 50;
zahvat = false;
}
~FIGURE_WITHMOUSE()
{
}
virtual void draw(PAINTER* painter, RECT* rc)
{
// na?ue oii
PEN pen_black;
BRUSH brush_fon(0xCCCCCC);
painter->rectangle(0, 0, rc->right, rc->bottom, pen_black, brush_fon);
PEN pen_blue;
BRUSH brush(0x000080);
pen_blue.set_color(0x00,00,0xFF);
painter->rectangle(x, y, x+BTNW, y+BTNH, pen_blue, brush);
painter->text(x+BTNW+3,y, "Hello, World!");
}
virtual bool inside(int mousex, int mousey)
{
int left = x;
int right = x+BTNW;
int top = y;
int bottom = y+BTNW;
return (mousex >= left && mousex <= right) &&
(mousey >= top && mousey <= bottom);
}
virtual void on_lbtn_down(int newx, int newy)
{
zahvat = true;
}
virtual void on_mousemove(int newx, int newy, bool ctrl_down)
{
// anee CTRL ia?aoa e iu a ?a?eia caoaaoa, oi nio?aiyai iiaua eii?aeiaou
if (zahvat && ctrl_down)
{
x = newx;
y = newy;
}
}
virtual void on_lbtn_up(int newx, int newy)
{
zahvat = false;
}
private:
enum {BTNW = 10, BTNH = 10};
int x;
int y;
bool zahvat;
};
 
 
 
 
 
class SETKA : public FIGURE
{
public:
SETKA()
{
    razmer = 30;
    xc=3;
    yc=3;
}
 
virtual void draw(PAINTER* painter, RECT* rc)
{
    // na?ue oii
    PEN pen_black;
    BRUSH brush_fon(0xFFFFFF);
    painter->rectangle(0, 0, rc->right, rc->bottom, pen_black, brush_fon);
    // ?enoai ai?eciioaeuio? e?anio? eeie?
    PEN pen_red;
    pen_red.set_color(0xFF,00,00);
    for (int y=0; y<rc->bottom; y+=razmer)
    {
        painter->line(0,y,rc->right,y, pen_red);
    }
    for (int x=0;x<rc->right;x+=razmer)
    {
        painter->line(x,0,x, rc->bottom, pen_red);
    }
 
    PEN pen_blue(0xff0000);
    BRUSH brush_blue(0xff0000);
    painter->rectangle((xc-1)*razmer,(yc-1)*razmer,(xc+1)*razmer,(yc+1)*razmer, pen_blue, brush_blue);
    
    
    char txt[1024];
    sprintf(txt, "size = %d",razmer);
    sprintf(txt, "size = %d",xc);
    sprintf(txt, "size = %d",yc);
    painter->text(xc, yc, txt);
}
 
virtual void on_char(char ch)
{
    if (ch=='+')
        razmer=razmer+5;
    if (ch=='-')
        razmer=razmer-5;
 
    if (razmer<5)
        razmer=5;   
    if (razmer>100)
        razmer=100;
 
    if (ch=='a')
    {
        xc=xc-1;
    }
    if (ch=='d')
    {
        xc=xc+1;
    }
    if (ch=='w')
    {
        yc=yc-1;
    }
    if (ch=='s')
    {
        yc=yc+1;
    }
}
 
 
private:
    int razmer;
    int xc;
    int yc;
};
 
 
 
 
 
 
 
 
 
 
 
 
 
 
//---------------------------------------------------------------
// nicaaai oeao?o
//---------------------------------------------------------------
FIGURE* create_figure()
{
return new SETKA;
}
 
Текущее время: 10:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru