Пошаговое руководство. Обновление приложения MFC Scribble (часть 1)
В этом пошаговом руководстве показано, как изменить существующее приложение MFC использовать пользовательский интерфейс ленты.Visual Studio поддерживает и ленты office 2007 и окна 7 сценарное ленты.Дополнительные сведения о пользовательском интерфейсе ленты см. в разделе на ленты веб-сайте MSDN.
В этом пошаговом руководстве изменяет классического образца MFC Scribble 1.0, которая позволяет использовать мышь, чтобы создать карандашные рисунки.В этой части пошагового руководства показывает, как изменить образца Scribble таким образом, что она отображается линейчатая ленты.часть 2 добавить несколько кнопок к гистограммам ленты.
Обязательные компоненты
Подразделы
В этой части пошагового руководства содержит следующие подразделы.
Заменить базовые классы
Добавление растровых изображений в проект
Добавление ресурса ленты в проект
Создание экземпляра полосы ленты
Добавление категории ленты
Выбрать параметр приложения
Заменить базовые классы
Чтобы преобразовать приложение, поддерживающее меню в приложение, поддерживающее ленте, необходимо создать приложение, окно фрейма и классы панели инструментов из обновленных базовых классов.(Не рекомендуется ознакомиться с исходного образца Scribble изменении; вместо этого очистка проекта Scribble, скопируйте их в другой каталог, а затем измените копии).
Заменить базовые классы приложения Scribble
В scribble.cpp, убедитесь, что CScribbleApp::InitInstance включает вызов AfxOleInit.
Добавьте следующий код в файл stdafx.h.
#include <afxcontrolbars.h>
В scribble.h измените определение класса CScribbleApp таким образом, чтобы он является производным от Класс CWinAppEx.
class CScribbleApp: public CWinAppEx
Scribble 1.0 был записан при инициализации windows-приложения использовать файл (ini) для сохранения информации настройки пользователя.Вместо файла настройки, измените Scribble для хранения параметров пользователя в реестре.Чтобы задать раздел реестра и основание введите следующий код в CScribbleApp::InitInstance после выписки LoadStdProfileSettings().
SetRegistryKey(_T("MFCNext\\Samples\\Scribble2")); SetRegistryBase(_T("Settings"));
Большая фрейма для приложения интерфейса MDI больше не наследуется от класса CMDIFrameWnd.Вместо этого он является производным от класса CMDIFrameWndEx.
Mainfrm.cpp, mainfrm.h в файлах и заменить все ссылки на CMDIFrameWnd с CMDIFrameWndEx.
Childfrm.cpp, childfrm.h в файлах и заменить CMDIChildWnd с CMDIChildWndEx.
в childfrm.файл h, заменяет CSplitterWnd с CSplitterWndEx.
Изменение панели инструментов и строки состояния для использования новых классов MFC.
в файле mainfrm.h:
Замените CToolBar с CMFCToolBar.
Замените CStatusBar с CMFCStatusBar.
в файле mainfrm.cpp:
Замените m_wndToolBar.SetBarStyle с m_wndToolBar.SetPaneStyle
Замените m_wndToolBar.GetBarStyle с m_wndToolBar.GetPaneStyle
Замените DockControlBar(&m_wndToolBar) с DockPane(&m_wndToolBar)
В файле ipframe.cpp, закомментируйте следующие 3 строк кода.
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY); pWndFrame->EnableDocking(CBRS_ALIGN_ANY); pWndFrame->DockPane(&m_wndToolBar);
Если предполагается связать приложение статически, то добавьте следующий код в начало файла ресурсов проекта (.rc).
#include "afxribbon.rc"
Файл afxribbon.rc содержащий ресурсы, необходимые во время выполнения.мастер приложений MFC включает этот файл автоматически при создании приложения.
Сохраните изменения, а затем выполните построение и запустите приложение.
[Подразделы]
Добавление растровых изображений в проект
Следующие 4 шага данного пошагового руководства требуют ресурса растрового изображения.Соответствующие растровые изображения можно получить различными способами:
Используйте Редакторы ресурсов чтобы разработать собственные растровые изображения.Или используйте редакторы ресурсов для сбора растровые изображения из портативных графических изображений сети (.png), включенных в Visual Studio.Эти образы в каталоге VS2008ImageLibrary.
Однако пользовательский интерфейс ленты требует несколько растровых изображений поддерживают прозрачные изображений.Прозрачные растровые изображения используется 32 точек, где 24 бита определяют красного, зеленого и синего компонентов цвета и 8 бит определяют альфа-канал, указывающий прозрачности цвета.Текущие редакторы ресурсов могут просматривать, но не изменять растровые изображения с 32 точек.Следовательно, используйте внешний редактор изображений вместо редакторов ресурсов для обработки прозрачные растровые изображения.
Скопируйте соответствующий файл ресурсов из другого приложения в проект, а затем импортировать растровые изображения из файла.
В этом пошаговом руководстве копирует файлы ресурсов из приложения в каталоге образцов.
Добавление растровых изображений в проект
Использование обозревателя файла, чтобы скопировать следующие файлы из каталога ресурсов (.bmp)res примера RibbonGadgets:
Скопируйте main.bmp в проекте Scribble.
Скопируйте filesmall.bmp и filelarge.bmp в проекте Scribble.
Создание новых копий из файлов filelarge.bmp и filesmall.bmp, но сохранение копии в примере RibbonGadgets.Переименуйте копии homesmall.bmp и homelarge.bmp а затем переместите копии в проекте Scribble.
Выполните копирование toolbar.bmp хранения, но сохранить копию в примере RibbonGadgets.Переименуйте копию panelicons.bmp а затем переместите копию в проекте Scribble.
Импортировать растровое изображение для приложения MFC.В Ресурсы, дважды щелкните узел scribble.rc, дважды щелкните узел Точечный рисунок, а затем нажмите кнопку Добавить ресурс.В появившемся диалоговом окне нажмите кнопку Импорт.Перейдите в каталог res выберите файл main.bmp, а затем нажмите кнопку Открыть.
Растровое изображение main.bmp содержит образ 26x26.Измените идентификатор растрового изображения в IDB_RIBBON_MAIN.
Импортировать растровые изображения для меню файла, вложенный к кнопке приложения.
Импортировать файл filesmall.bmp, который содержит значение 10 (16x160 образов 16x16).Поскольку нам требуется только 8 образов 16x16 (16x128), используйте Ресурсы чтобы изменить, чтобы ширина растрового изображения в диапазоне от 160 до 128.Измените идентификатор растрового изображения в IDB_RIBBON_FILESMALL.
Импортировать filelarge.bmp, содержащий 8 (32x256) размером 32x32 изображений.Измените идентификатор растрового изображения в IDB_RIBBON_FILELARGE.
Импортировать растровые изображения для категорий и панелей " ленты.Каждая вкладка на панели ленты категория и состоит из текстовой подписи и дополнительного образа.
Импортировать растровое изображение homesmall.bmp, содержащий 8 образов 16x16 для небольших растровых изображений кнопок.Измените идентификатор растрового изображения в IDB_RIBBON_HOMESMALL.
Импортировать растровое изображение homelarge.bmp, содержащий 8 размером 32x32 изображений для больших растровых изображений кнопок.Измените идентификатор растрового изображения в IDB_RIBBON_HOMELARGE.
Импортировать растровые изображения для изменения размерых панелей ленты.Эти растровые изображения, значки панели, используются после операции изменения размера, если лента слишком мал для отображения всей области.
- Импортировать растровое изображение panelicons.bmp, содержащий 8 образов 16x16.В окне СвойстваРедактор точечных рисунков, увеличьте ширину растрового изображения до 64 (16x64).Измените идентификатор растрового изображения в IDB_PANEL_ICONS.
[Подразделы]
Добавление ресурса ленты в проект
При преобразовании приложение, использующее меню в приложение, использующее ленте, не следует удалить или отключить существующих меню.Вместо этого необходимо создать ресурс ленты, добавить кнопки ленты, а затем связать новые кнопки с существующими точками меню.Хотя меню больше не видны сообщения от линейки, двигающийся направляются через меню ленты.Кроме того, ярлыки меню, продолжают действовать.
Лента состоит из кнопок приложения, большая кнопка на левой стороне верхн- ленты и одного или нескольких вкладок категории.Каждая вкладка содержит один или несколько панели категорий, которые действуют как контейнеры для кнопок и элементов управления ленты.В следующей процедуре показано, как создать ресурс ленты, а затем настраивать кнопку приложения.
Добавление ресурса ленты в проект
В меню Проект нажмите кнопку Добавить ресурс.
В диалоговом окне Добавить ресурс выберите Лента а затем нажмите кнопку Создать.
Visual Studio создает ресурс и открытые ленты в представлении конструирования.Идентификатор ресурса ленты IDR_RIBBON1, который отображается в Ресурсы.Лента содержит одну категорию и одну область.
Кнопка приложения можно настраивать, изменяя его свойства.Идентификаторы сообщения, которые используются в этом коде уже определены в меню Scribble 1.0.
В представлении конструирования, нажмите кнопку приложения для отображения его свойств.Изменения значений свойств следующим образом: Изображение к IDB_RIBBON_MAIN, Запрос к файл, Ключи к f, Крупные изображения к IDB_RIBBON_FILELARGE и Мелкие изображения к IDB_RIBBON_FILESMALL.
Следующие изменения создают меню, которое появляется, когда пользователь нажимает кнопку приложения.Нажмите кнопку с многоточием (###…) рядом с Основные элементы, чтобы открыть Редактор элементов.
Щелкните Добавить для добавления.Изменение подпись к &New, Идентификатор к ID_FILE_NEW, Изображение к 0, Большое изображение к 0.
Щелкните Добавить для добавления вторая кнопка.Изменение подпись к &Save, Идентификатор к ID_FILE_SAVE, Изображение к 2 и Большое изображение до 2.
Щелкните Добавить для добавления третья кнопка.Изменение подпись к Сохраните &As, Идентификатор к ID_FILE_SAVE_AS, Изображение к 3 и Большое изображение до 3.
Щелкните Добавить для добавления четвертая кнопка.Изменение подпись к &Print, Идентификатор к ID_FILE_PRINT, Изображение к 4 и Большое изображение до 4.
Измените тип item к Разделитель а затем нажмите кнопку Добавить.
Измените тип item к Кнопка.Щелкните Добавить для добавления пятая кнопка.Изменение подпись к &Close, Идентификатор к ID_FILE_CLOSE, Изображение к 5 и Большое изображение до 5.
Следующие изменения создать подменю под кнопкой печати, созданной в предыдущем шаге.
Нажмите кнопку Печать измените тип item к Метка, а затем нажмите кнопку Вставить.Измените подпись к Предварительный просмотр и напечатайте документ.
Нажмите кнопку Печать измените тип item к Кнопка и нажмите кнопку Вставить.Изменение подпись к &Print, Идентификатор к ID_FILE_PRINT, Изображение к 4 и Большое изображение до 4.
Нажмите кнопку Печать а затем нажмите кнопку Вставить для добавления.Изменение подпись к печать &Quick, Идентификатор к ID_FILE_PRINT_DIRECT, Изображение к 7 и Большое изображение до 7.
Нажмите кнопку Печать а затем нажмите кнопку Вставить чтобы добавить другую.Изменение подпись к печать Pre&view, Идентификатор к ID_FILE_PRINT_PREVIEW, Изображение к 6 и Большое изображение к 6.
Теперь изменения Основные элементы.Нажмите кнопку Закрыть чтобы выйти из Редактор элементов.
Следующее изменение создает кнопку сохранить, которая отображается в нижней части меню кнопки приложения.
В окне Свойства, нажмите кнопку с многоточием (###…) рядом с Кнопка, чтобы открыть Редактор элементов.
Щелкните Добавить для добавления.Изменение подпись к E&xit, Идентификатор к ID_APP_EXIT, Изображение к 8.
[Подразделы]
Создание экземпляра полосы ленты
Следующие шаги показывают, как создать экземпляр полосы ленты когда запуске приложения.Чтобы добавить линейчатую диаграмму ленты в приложение, объявите черта ленты в файле mainfrm.h.Затем в файле mainfrm.cpp, написание кода для загрузки ресурса ленты.
Создание экземпляра полосы ленты
В файле mainfrm.h добавьте элемент данных к защищенному шагу CMainFrame, определению класса для главного фрейма.Этот член представляющий полосу ленты.
// Ribbon bar for the application CMFCRibbonBar m_wndRibbonBar;
В файле mainfrm.cpp, добавьте следующий код перед выполнением окончательного оператор return в конце функции CMainFrame::OnCreate.Это создает экземпляр полосы ленты.
// Create the ribbon bar if (!m_wndRibbonBar.Create(this)) { return -1; //Failed to create ribbon bar } m_wndRibbonBar.LoadFromResource(IDR_RIBBON1);
[Подразделы]
Настраивать ресурсом ленты
Теперь, после создания кнопку приложения можно добавлять элементы к ленте.
![]() |
---|
В этом пошаговом руководстве используется один и тот же значок панели для всех панелей.Однако можно использовать и другие индексы списка завершения образа для отображения других значков. |
Добавление домашняя категория и редактирования панель
Программа Scribble требуется только одной категории.В представлении конструирования щелкните Категория для отображения его свойств.Изменения значений свойств следующим образом: подпись к &Home, Крупные изображения к IDB_RIBBON_HOMELARGE, Мелкие изображения к IDB_RIBBON_HOMESMALL.
Каждая категория ленты организована в виде именованные области.Каждая панель содержит набор элементов управления, выполняющих связанные операции.Эта категория содержит одну область.Нажмите кнопку Панель, а затем изменяется подпись к правка и индекс образа к 0.
На панели Изменить добавьте кнопку, которая отвечает за очистить содержимое документа.Идентификатор сообщения этой кнопки уже был определен в ресурсе меню IDR_SCRIBBTYPE.Укажите Очистить все как текст кнопки и индекс растрового изображения, оформляет кнопку.Откройте Панель элементов, а затем перетащите Кнопка на панели Изменить.Нажмите кнопку а затем изменить подпись к Очистить все, Идентификатор к ID_EDIT_CLEAR_ALL, индекс образа к 0, большой индекс образа к 0.
Сохраните изменения, а затем выполните построение и запустите приложение.Приложения Scribble должно отображаться, и оно должно иметь черта ленты в верхней части окна вместо строки меню.Линейчатая ленты должен иметь одну категорию Главная и Главная должен входить в одну панель Изменить.Кнопки ленты, добавленных должны быть связаны с существующими обработчиками событий и Открыть, Закрыть, Сохранить, Печать и кнопками Очистить все должны работать ожидаемым образом.
[Подразделы]
Выбрать параметр приложения
Диспетчер визуального представления объект global, что элементы управления весь документ для приложения.Поскольку исходная приложения Scribble используется стиль 2000 пользовательского интерфейса office (пользовательского интерфейса), приложение может выглядеть старомодный.Можно сбросить приложению использовать диспетчер визуального представления 2007 office таким образом, чтобы он напоминает приложение office 2007.
Выбрать установки приложения
В функции CMainFrame::OnCreate введите следующий код для изменения по умолчанию диспетчер визуального представления и стиль.
// Set the default manager to Office 2007 CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerOffice2007)); CMFCVisualManagerOffice2007::SetStyle(CMFCVisualManagerOffice2007::Office2007_LunaBlue);
Сохраните изменения, а затем выполните построение и запустите приложение.Пользовательский интерфейс приложения должен соответствовать пользовательский интерфейс office 2007.
[Подразделы]
Следующие действия
Измененный классического образца MFC Scribble 1.0 для использования конструктора лент.Теперь перейдите на часть 2.
См. также
Задачи
Пошаговое руководство. Обновление приложения MFC Scribble (часть 2)