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

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

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Александр Фролов, "Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT. Часть 2" бесплатно, без регистрации.
Перейти на страницу:

 // TBBS_WRAPPED

 nIndex = m_wndStyleBar.CommandToIndex(ID_TEXT_JUSTIFY);

 nBarStyle = m_wndStyleBar.GetButtonStyle(nIndex) | TBBS_WRAPPED;

 m_wndStyleBar.SetButtonStyle(nIndex, nBarStyle);


 // Отображаем панель управления Style в мини-окне.

 // Начальные координаты панели управления определяются

 // значением объекта pointStyleBar класса CPoint

 CPoint pointStyleBar(100, 100);

 FloatControlBar(&m_wndStyleBar, pointStyleBar);


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

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

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

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

 if (!m_wndExtendedBar.Create(this, WS_CHILD | WS_VISIBLE | CBRS_SIZE_DYNAMIC | CBRS_TOP | CBRS_TOOLTIPS, ID_Extended)) {

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

  TRACE0("Failed to create toolbarn");

  return -1;

 }


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

 if (!m_wndExtendedBar.LoadToolBar(IDR_EXTENDED)) {

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

  TRACE0("Failed to load toolbarn");

  return -1;

 }


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

 m_wndExtendedBar.SetWindowText("Extended");


 // Увеличиваем размер первого разделителя.

 // Этот разделитель имеет индекс 2

 m_wndExtendedBar.SetButtonInfo(2, IDW_EDIT, TBBS_SEPARATOR, 130);


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

 // управления, занимаемой разделителем

 CRect rectEdit;

 m_wndExtendedBar.GetItemRect(2, &rectEdit);


 // Делаем отступ с левой и правой стороны

 rectEdit.left += 6;

 rectEdit.right -= 6;


 // Размещаем на панели управления Extended, в области

 // rectEdit однострочный текстовый редактор

 if (!m_wndExtendedBar.m_edit.Create(WS_CHILD |  ES_AUTOHSCROLL|WS_VISIBLE|WS_TABSTOP|WS_BORDER,  rectEdit, &m_wndExtendedBar, IDW_EDIT)) {

  // Ошибка при создании текстового редактора

  TRACE0("Failed to create edit-boxn");

  return FALSE;

 }


 // Увеличиваем размер второго разделителя.

 // Этот разделитель имеет индекс 4

 m_wndExtendedBar.SetButtonInfo(4, IDW_COMBO, TBBS_SEPARATOR, 150);


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

 // управления, занимаемой разделителем

 CRect rectComboBox;

 m_wndExtendedBar.GetItemRect(4, &rectComboBox);


 // Делаем отступ с левой и правой стороны

 rectComboBox.left += 6;

 rectComboBox.right -= 6;


 // Увеличиваем высоту прямоугольной области, чтобы в ней

 // можно было разместить список combo-box

 rectComboBox.bottom = rectComboBox.top + 80;


 // Размещаем на панели управления Extended, в области

 // rectComboBox список combo-box

 if (!m_wndExtendedBar.m_combo_box.Create(CBS_DROPDOWN | WS_CHILD | WS_VISIBLE | WS_VSCROLL |      ES_AUTOHSCROLL | CBS_DISABLENOSCROLL, rectComboBox, &m_wndExtendedBar, IDW_COMBO)) {

  // Ошибка при создании списка

  TRACE0("Failed to create combo-boxn");

  return FALSE;

 }


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

 m_wndExtendedBar.m_combo_box.AddString("One");

 m_wndExtendedBar.m_combo_box.AddString("Two");

 m_wndExtendedBar.m_combo_box.AddString("Third");


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

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

 m_wndExtendedBar.EnableDocking(CBRS_ALIGN_ANY);


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

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

 DockControlBar(&m_wndExtendedBar);


 return 0;

}

Ресурсы приложения MultiBar

Создайте новый файл ресурсов и включите его в проект под именем MultiBar.rc. Теперь надо создать три панели управления toolbar и включить их в файл ресурсов. Изображения кнопок панелей управления вы можете нарисовать самостоятельно или скопировать их из файла ресурсов Common.res, поставляемого вместе с Microsoft Visual C++. Более подробная информация о файле Common.res представлена в разделе “Ресурсы Microsoft”.

При создании панелей управления руководствуйтесь информацией из файла ресурсов приложения MultiBar (листинг 3.3) и изображениями кнопок панелей управления (рис. 3.3, 3.4, 3.5).

Первая панель управления должна иметь идентификатор IDR_PLAYER и содержать девять кнопок с идентификаторами ID_LEFT, ID_PLAY, ID_RIGHT, ID_STOP, ID_PAUSE, ID_EJECT, ID_TYPE, ID_CD_DRV и ID_WAVE. Между кнопками ID_RIGHT и ID_STOP, ID_PAUSE и ID_EJECT, ID_EJECT и ID_TYPE вставьте разделители. Для каждой из кнопок вы также можете ввести их текстовые описания.

Вторая панель управления должна иметь идентификатор IDR_STYLE и содержать двенадцать кнопок с идентификаторами ID_UNDERLINE, ID_2_UNDERLINE, ID_SUPERSCRIPT, ID_SUBSCRIPT, ID_TEXT_LEFT, ID_ID_TEXT_CENTER, ID_TEXT_RIGHT, ID_TEXT_JUSTIFY, ID_MARK_1, ID_MARK_2, ID_MARK_3 и ID_MARK_4. Для первых шести кнопок введите их текстовые описания.

Третья панель управления должна иметь идентификатор IDR_EXTENDED. Определите в ней четыре кнопки с идентификаторами ID_FOTO, ID_PRINTER, ID_ADD и ID_DISK. Между кнопками ID_PRINTER и  ID_ADD, а также ID_ADD и ID_DISK вставьте разделители. Введите текстовые описания кнопок.

В файл ресурсов, кроме панелей управления toolbar, включите меню IDR_MENU с тремя строками Style, Extended и Player, которые имеют идентификаторы ID_Style, ID_Extended и ID_Player. Обратите внимание, что идентификаторы строк меню соответствуют идентификаторам панелей управления.

Файл ресурсов приложения MultiBar мы привели в листинге 3.8. В нем определены ресурсы панелей управления toolbar с идентификаторами IDR_PLAYER, IDR_STYLE и IDR_EXTENDED, ресурсы изображений этих панелей управления с соответствующими идентификаторами, меню приложения, а также несколько строковых ресурсов с описаниями кнопок панелей управления. Идентификаторы строковых ресурсов соответствуют идентификаторам кнопок панелей управления, которые они описывают.

Листинг 3.8. Файл MultiBar.rc

//Microsoft Developer Studio generated resource script.

//

#include "resource.h"


#define APSTUDIO_READONLY_SYMBOLS

//////////////////////////////////////////////////////////////

//

// Generated from the TEXTINCLUDE 2 resource.

//

#include "afxres.h"


//////////////////////////////////////////////////////////////

#undef APSTUDIO_READONLY_SYMBOLS


//////////////////////////////////////////////////////////////

//

// Russian resources


#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_RUS)

#ifdef _WIN32

LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT

#pragma code_page(1251)

#endif //_WIN32


#ifdef APSTUDIO_INVOKED

//////////////////////////////////////////////////////////////

//

// TEXTINCLUDE

//


1 TEXTINCLUDE DISCARDABLE

BEGIN

 "resource.h"

END


2 TEXTINCLUDE DISCARDABLE

BEGIN

 "#include ""afxres.h""rn"

 ""

END


3 TEXTINCLUDE DISCARDABLE

BEGIN

 "rn"

 ""

END


#endif    // APSTUDIO_INVOKED


//////////////////////////////////////////////////////////////

//

// Toolbar

//


IDR_PLAYER TOOLBAR DISCARDABLE 16, 15

BEGIN

 BUTTON ID_LEFT

 BUTTON ID_PLAY

 BUTTON ID_RIGHT

 SEPARATOR

 BUTTON ID_STOP

 BUTTON ID_PAUSE

 SEPARATOR

 BUTTON ID_EJECT

 SEPARATOR

 BUTTON ID_TYPE

 BUTTON ID_CD_DRV

 BUTTON ID_WAVE

END


IDR_STYLE TOOLBAR DISCARDABLE 16, 15

BEGIN

 BUTTON ID_UNDERLINE

 BUTTON ID_2_UNDERLINE

 BUTTON ID_SUPERSCRIPT

 BUTTON ID_SUBSCRIPT

 BUTTON ID_TEXT_LEFT

 BUTTON ID_ID_TEXT_CENTER

 BUTTON ID_TEXT_RIGHT

 BUTTON ID_TEXT_JUSTIFY

 BUTTON ID_MARK_1

 BUTTON ID_MARK_2

 BUTTON ID_MARK_3

 BUTTON ID_MARK_4

END


IDR_EXTENDED TOOLBAR DISCARDABLE 16, 15

BEGIN

 BUTTON ID_FOTO

 BUTTON ID_PRINTER

 SEPARATOR

 BUTTON ID_ADD

 SEPARATOR

 BUTTON ID_DISK

END


//////////////////////////////////////////////////////////////

//

// Bitmap

//


IDR_PLAYER   BITMAP DISCARDABLE "player.bmp"

IDR_STYLE    BITMAP DISCARDABLE "style.bmp"

IDR_EXTENDED BITMAP DISCARDABLE "extended.bmp"


//////////////////////////////////////////////////////////////

//

// Menu

//


IDR_MENU MENU DISCARDABLE

BEGIN

 POPUP "View"

 BEGIN

  MENUITEM "Style",    ID_Style

  MENUITEM "Extended", ID_Extended

  MENUITEM "Player",   ID_Player

 END

END


//////////////////////////////////////////////////////////////

//

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*