Назад | Начало урока | Вперед
Содержание

Глава 4

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

В заголовочном файле главного окна объявим три переменные класса Field:

CField m_OwnField, m_LetterO, m_NumberO;

В функции OnInitDialog() главного окна создадим три объекта класса Field:

BOOL CSeaBattle02Dlg::OnInitDialog() {

CDialog::OnInitDialog();
HINSTANCE hInst;
RECT rect;
CDC* dc;
int i, j;
CBitmap bmp;
CPicture m_Fon;

hInst = AfxGetInstanceHandle();

m_OwnField.Create(NULL, WS_CHILD|WS_VISIBLE|SS_NOTIFY, CRect(30, 100, 230, 300), this);
m_OwnField.SetMode(OWN_FIELD);

m_NumberO.Create(NULL, WS_CHILD|WS_VISIBLE, CRect(30, 80, 230, 95), this);
m_NumberO.SetMode(NUMBERS);

m_LetterO.Create(NULL, WS_CHILD|WS_VISIBLE, CRect(10, 100, 25, 300), this);
m_LetterO.SetMode(LETTERS);

. . .
m_OwnField.SetParent(this);
. . .
}

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

Скачать исходный код и exe-файл этой небольшой программы, в которой
мы сделали первые шаги по работе с графикой можно здесь:

Скачать программу

Далее нам предстоит еще более интересная задача - сделать так, чтобы при движении курсора над полем боя вслед за курсором двигался корабль, а при клике левой кнопкой - корабль садился бы на свое место на поле боя. Чтобы при клике правой кнопкой, корабль разворачивался на 90 градусов по сравнении с предыдущим положением. Таким образом мы сможем заполнить наше поле боя десятью военными кораблями.


Назад | Начало урока | Вверх | Вперед
Содержание

Hosted by uCoz