Категории
Самые читаемые
Лучшие книги » Компьютеры и Интернет » Программирование » Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT. Часть 2 - Александр Фролов

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

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

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 27 28 29 30 31 32 33 34 35 ... 54
Перейти на страницу:

protected:

 // Панель управления Player

 CToolBar m_wndPlayerBar;

 // Панель управления Style

 CToolBar m_wndStyleBar;

 // Панель управления Extended

 CExtendedBar m_wndExtendedBar;

protected:

 // Метод OnCreate используется для создания

 // панелей управления

 afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);

public:

 // Объявляем конструктор класса CMultiBarWindow

 CMultiBarWindow();

 // Объявляем методы для обработки команд от панелей

 // управления

 afx_msg void BarCommandOne();

 afx_msg void BarCommandRange(UINT nID);

 afx_msg void AddStringToComboBox();

 // Объявляем метод для обработки команд от меню View

 afx_msg BOOL ShowStyle(UINT nID);

 // Макрокоманда необходима, так как класс

 // CMultiBarWindow обрабатывает сообщения

 DECLARE_MESSAGE_MAP()   

};

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

// Метод BarCommandRange

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

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

void CMultiBarWindow::BarCommandRange(UINT nID) {

 // Обработчик не выполняет никакой работы

}

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

// Метод BarCommand

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

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

void CMultiBarWindow::BarCommandOne() {

 // Отображаем сообщение о том, что команда не реализована

 MessageBox("Command not implemented");

}

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

// Метод AddStringToComboBox

// Обрабатывает команду от кнопки Add панели

// управления Extended

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

void CMultiBarWindow::AddStringToComboBox() {

 // Получаем строку, введенную в текстовом редакторе m_edit

 char  tmpStr[39];

 m_wndExtendedBar.m_edit.GetLine(0, tmpStr,40);

 // Добавляем новую строку к списку m_combo_box

 m_wndExtendedBar.m_combo_box.AddString(tmpStr);

}

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

// Метод ShowStyle

// Обрабатывает команды от меню View

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

BOOL CMultiBarWindow::ShowStyle(UINT nID) {

 // Определяем указатель на панель управления,

 // соответствующую идентификатору nID

 CControlBar* pBar = GetControlBar(nID);

 // Определяем, отображается в данный момент панель

 // управления на экране или нет

 BOOL bShow = ((pBar->GetStyle() & WS_VISIBLE) != 0);

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

 // управления отображается на экране, удаляем ее с экрана,

 // если нет - отображаем

 ShowControlBar(pBar, !bShow, FALSE);

 return TRUE;

}

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

// Таблица сообщений класса CMultiBarWindow

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

BEGIN_MESSAGE_MAP(CMultiBarWindow, CFrameWnd)

 // Макрокоманда вызывает метод 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 toolbarn");

  return -1;

 }

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

 if (!m_wndPlayerBar.LoadToolBar(IDR_PLAYER)) {

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

  TRACE0("Failed to load toolbarn");

  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);

 // Разрешаем пристывковывать панель управления Player к

 // любой строке родительского окна

 m_wndPlayerBar.EnableDocking(CBRS_ALIGN_ANY);

 // Пристывковываем панель управления Player к

 // родительскому окну

 DockControlBar(&m_wndPlayerBar);

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

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

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

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

 if (!m_wndStyleBar.Create(this, WS_CHILD | WS_VISIBLE | CBRS_SIZE_FIXED | CBRS_TOP | CBRS_TOOLTIPS, ID_Style)) {

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

  TRACE0("Failed to create toolbarn");

  return -1;

 }

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

 if (!m_wndStyleBar.LoadToolBar(IDR_STYLE)) {

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

  TRACE0("Failed to load toolbarn");

  return -1;

 }

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

 m_wndStyleBar.SetWindowText("Style");  

 // Запрещаем пристывковывать панель управления Player к

 // родительскому окну

 m_wndStyleBar.EnableDocking(0);

 // Устанавливаем для кнопки ID_SUBSCRIPT стиль TBBS_WRAPPED

 nIndex = m_wndStyleBar.CommandToIndex(ID_SUBSCRIPT);

 nBarStyle = m_wndStyleBar.GetButtonStyle(nIndex) | TBBS_WRAPPED;

 m_wndStyleBar.SetButtonStyle(nIndex, nBarStyle);

 // Устанавливаем для кнопки ID_TEXT_JUSTIFY стиль

 // TBBS_WRAPPED

1 ... 27 28 29 30 31 32 33 34 35 ... 54
Перейти на страницу:
На этой странице вы можете бесплатно скачать Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT. Часть 2 - Александр Фролов торрент бесплатно.
Комментарии