Mycell cpp mycell cpp Реализация класса CMyCell класса ячейка include

 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
Mycell. cpp
// mycell. cpp
// Реализация класса CMyCell, т.е. класса ячейка
#include "stdafx. h"
#include "mycell. h"
CMyCell:: CMyCell(int x, int y, int state)
: cellX(x), cellY(y), cellState(state) // доступ к переменным
{
// cellX = x;
// cellY = y;
// cellState = state;
}
CMyCell:: CMyCell(const CMyCell & copy)
: cellX(copy. GetX()), cellY(copy. GetY()), cellState(copy. GetState()) // копирующий уонструктор
{
}
CMyCell:: ~CMyCell() // деструктор
{
}
int CMyCell:: GetX() const
{
return cellX; // возвращает значение x
}
int CMyCell:: GetY() const
{
return cellY; // возвращает значение у
}
int CMyCell:: GetState() const
{
return cellState; // возвращает значение позиции
}
void CMyCell:: SetX(int x) // проверка на то, чтоб координата х была больше нуля
{
if (x >= 0)
cellX = x;
else
cellX = 0; // error
}
void CMyCell:: SetY(int y) // проверка на то, чтоб координата у была больше нуля
{
if (y >= 0)
cellY = y;
else
cellY = 0; // error
}
void CMyCell:: SetState(int state) // проверка на то, чтоб значение позиции было больше нуля
{
if (state >= 0)
cellState = state;
else
cellState = 0; // error
}
bool CMyCell:: HitToPoint(const CPoint & point) // создание ячейки
// проверка положения ячейки
{ if ((point. x > 10 + GetY() * (SIZE + 2)) && (point. x < 10 + GetY() * (SIZE + 2) + SIZE) &&
(point. y > 10 + GetX() * (SIZE + 2)) && (point. y < 10 + GetX() * (SIZE + 2) + SIZE))
return true;
return false;
}
void CMyCell:: DrawClosedCell(CDC * dc) // прорисовка закрытой ячейки
{
CPen pen(PS_SOLID, 1, RGB(0, 0, 0));
CBrush brush(RGB(204, 204, 204));
CPen * oldPen = dc->SelectObject(&pen);
CBrush * oldBrush = dc->SelectObject(&brush);
dc->Rectangle(10 + GetY() * (SIZE + 2), 10 + GetX() * (SIZE + 2),
10 + GetY() * (SIZE + 2) + SIZE, 10 + GetX() * (SIZE + 2) + SIZE);
dc->SelectObject(oldBrush);
dc->SelectObject(oldPen);
}
void CMyCell:: DrawBlockedCell(CDC * dc) // прорисовка заблокированной ячейки
{
CPen pen(PS_SOLID, 1, RGB(0, 0, 0));
CBrush brush(RGB(204, 204, 204));
// CPen penBlock(PS_SOLID, 4, RGB(0, 0, 0));
CPen * oldPen = dc->SelectObject(&pen);
CBrush * oldBrush = dc->SelectObject(&brush);
dc->Rectangle(10 + GetY() * (SIZE + 2), 10 + GetX() * (SIZE + 2),
10 + GetY() * (SIZE + 2) + SIZE, 10 + GetX() * (SIZE + 2) + SIZE);
// CPen * oldBlockPen = dc->SelectObject(&penBlock);
dc->TextOutA(10 + GetY() * (SIZE + 2) + 6, 10 + GetX() * (SIZE + 2) + 3, "B", 1); // обозначение флажка
// dc->SelectObject(oldBlockPen);
dc->SelectObject(oldBrush); // указатель на обьект ячейки
dc->SelectObject(oldPen);
}