Глава 2
В зависимости от того, какой булевый аргумент получен функцией, выполняется одна ветвь или другая ветвь; окно расширяется или сжимается, кнопки-картинки соответственно смещаются вправо или возвращаются обратно на первоначальное место.
void CSeaBattleDlg::MoveButtons(bool IsTn)
{
RECT rect;
int w;
GetClientRect(&rect);
w = rect.right-118-103-112-142;
w = w/3;
if(IsTn)
{
m_HelpWnd.MoveWindow(103+112+142+3*w, 20, 118, 58);
m_SingleWnd.MoveWindow(103+w+112+w, 18, 142, 68);
m_NetWnd.MoveWindow(103+w, 20, 112, 65);
}
else
{
m_NetWnd.MoveWindow(103+w, 20, 112, 65);
m_SingleWnd.MoveWindow(103+w+112+w, 18, 142, 68);
m_HelpWnd.MoveWindow(103+112+142+3*w, 20, 118, 58);
}
}
Как видим этой функции передается булевая переменная. В зависимоcти от того, false или true передано в параметр, выполняется соответствующая ветвь кода. Как обычно вызывается функция GetClientRect() для получения клиентской части (холста) и на этот холст помещается (при помощи функции MoveWindow()) четыре картинки (четыре кнопки-картинки). Из названия типа переменных, похоже, что это кнопки.
CButWnd m_ShipWnd, m_NetWnd, m_SingleWnd, m_HelpWnd;
В зависимости от того, какая ветвь выполняется, окно расширяется или сжимается, картинки соответственно смещаются в сторону или возвращаются обратно на первоначальное место.
Назад |
Начало урока |
Вверх |
Вперед
Содержание