Чтение онлайн

ЖАНРЫ

Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT. Часть 2

Фролов Григорий Вячеславович

Шрифт:

 // Макрокоманда вызывает метод OnCreate

 ON_WM_CREATE

 // Обработчики команд от панели управления Player

 ON_COMMAND(ID_STOP, BarCommandOne)

 ON_COMMAND(ID_PLAY, BarCommandOne)

 ON_COMMAND(ID_PAUSE, BarCommandOne)

 ON_COMMAND_RANGE(ID_LEFT, ID_RIGHT, BarCommandRange)

 ON_COMMAND_RANGE(ID_TYPE, ID_WAVE, BarCommandRange)

 //
Обработчики команд от панели управления Extended

 ON_COMMAND(ID_ADD, AddStringToComboBox)

 ON_COMMAND_RANGE(ID_FOTO, ID_DISK, BarCommandRange)

 // Обработчик команд от панели управления Style

 ON_COMMAND_RANGE(ID_UNDERLINE, ID_MARK_4, BarCommandRange)

 // Обработчики команд меню View

 ON_COMMAND_EX(ID_Style, ShowStyle)

 ON_COMMAND_EX(ID_Extended, ShowStyle)

 ON_COMMAND_EX(ID_Player, ShowStyle)

END_MESSAGE_MAP

//============================================================

// Метод InitInstance класса CMultiBarApp

// Создает главное окно приложения и отображает его на экране

//============================================================

BOOL CMultiBarApp::InitInstance {

 m_pMainWnd = new CMultiBarWindow;

 m_pMainWnd->ShowWindow(m_nCmdShow);

 m_pMainWnd->UpdateWindow;

 return TRUE;

}

//============================================================

// Конструктор класса CMultiBarWindow

//============================================================

CMultiBarWindow::CMultiBarWindow {

 // Создаем окно приложения, соответствующее

 // данному объекту класса CMultiBarWindow

 Create(NULL, "Multi Bar", WS_OVERLAPPEDWINDOW, rectDefault, NULL, MAKEINTRESOURCE(IDR_MENU));

}

//============================================================

// Метод OnCreate класса CMultiBarWindow

// Используется для создания панелей управления

//============================================================

int CMultiBarWindow::OnCreate(LPCREATESTRUCT lpCreateStruct) {

 // Вызываем метод OnCreate базового класса

 if (CFrameWnd::OnCreate(lpCreateStruct) == -1) return -1;

 // Разрешаем присоединение панелей управления ко

 //
всем сторонам окна CMultiBarWindow

 EnableDocking(CBRS_ALIGN_ANY);

 // Переменные для изменения стилей кнопок

 UINT nBarStyle;

 int nIndex;

 //============================================================

 // Создаем и отображаем панель управления Player

 //============================================================

 // Создаем панель управления toolbar

 if (!m_wndPlayerBar.Create(this, WS_CHILD | WS_VISIBLE | CBRS_SIZE_DYNAMIC | CBRS_BOTTOM | CBRS_TOOLTIPS, ID_Player)) {

// Ошибка при создании панели управления

TRACE0("Failed to create toolbar\n");

return -1;

 }

 // Загружаем ресурс панели управления Player

 if (!m_wndPlayerBar.LoadToolBar(IDR_PLAYER)) {

// Ошибка при загрузке ресурса панели управления

TRACE0("Failed to load toolbar\n");

return -1;

 }

 // Устанавливаем заголовок панели управления Player

 m_wndPlayerBar.SetWindowText("Player");

 // Из кнопок с идентификаторами ID_TYPE, ID_CD_DRV и

 // ID_WAVE делаем трехпозиционный переключатель с зависимой

 // фиксацией. Устанавливаем для этих кнопок стиль

 // TBBS_CHECKGROUP

 nIndex = m_wndPlayerBar.CommandToIndex(ID_TYPE);

 nBarStyle = m_wndPlayerBar.GetButtonStyle(nIndex) | TBBS_CHECKGROUP;

 m_wndPlayerBar.SetButtonStyle(nIndex, nBarStyle);

 nIndex = m_wndPlayerBar.CommandToIndex(ID_CD_DRV);

 nBarStyle = m_wndPlayerBar.GetButtonStyle(nIndex) | TBBS_CHECKGROUP;

 m_wndPlayerBar.SetButtonStyle(nIndex, nBarStyle);

 nIndex = m_wndPlayerBar.CommandToIndex(ID_WAVE);

 nBarStyle = m_wndPlayerBar.GetButtonStyle(nIndex) | TBBS_CHECKGROUP;

 m_wndPlayerBar.SetButtonStyle(nIndex, nBarStyle);

 // Из кнопки с идентификатором ID_PAUSE делаем

 // переключатель. Устанавливаем для этой кнопки стиль

 // TBBS_CHECKBOX

 nIndex = m_wndPlayerBar.CommandToIndex(ID_PAUSE);

 nBarStyle = m_wndPlayerBar.GetButtonStyle(nIndex) | TBBS_CHECKBOX;

 m_wndPlayerBar.SetButtonStyle(nIndex, nBarStyle);

<
Поделиться с друзьями: