Глава 1
void CField::SetParent(CWnd *wnd)
{
RECT rect;
CBitmap bmp;
CDC *dc = GetDC();
m_Parent = wnd;
//получить клиентскую область окна (холст)
GetClientRect(&rect);
//сделать новый контекст устройства совместимым с реальным
//контектом устройства
WaterDC.CreateCompatibleDC(dc);
//сделать точечный рисунок совместимым с реальным
//контектом устройства
bmp.CreateCompatibleBitmap(dc, rect.right, rect.bottom);
//выбрать точечный рисунок в новый контекст устройства
pOld = WaterDC.SelectObject(&bmp);
::SendMessage(m_Parent->m_hWnd, WM_STATIC_TO_DLG, WM_FILL_DC, (LPARAM)&WaterDC);
ReleaseDC(dc);
}
m_OwnField.SetParent(this);
m_ForeignField.SetParent(this);
m_SaveDialog.SetParent(this);
Функция SetParent() вызванная объектом делает этот объект дочерним, к окну, указанному в параметре. Таким образом "Наше поле", "Вражеское поле", Диалоговое окно "Диалог" становятся дочерними окнами для главного окна приложения - CSeaBattleDlg.
В заголовке главного окна объявлены эти переменные:
public: CField m_OwnField, m_ForeignField, m_LetterO, m_LetterF,
m_NumberO, m_NumberF;
private: CSaveDialog m_SaveDialog;
Назад |
Начало урока |
Вверх |
Вперед
Содержание