Поделиться через


Класс CMDIFrameWndEx

Расширяет функциональные CMDIFrameWndвозможности окна фреймов Windows Multiple Document Interface (MDI).

Синтаксис

class CMDIFrameWndEx : public CMDIFrameWnd

Участники

Открытые методы

Имя Описание
CMDIFrameWndEx::ActiveItemRecalcLayout Пересчитывает макет активного элемента.
CMDIFrameWndEx::AddDockSite Этот метод не используется.
CMDIFrameWndEx::AddPane Регистрирует область с помощью диспетчера закрепления.
CMDIFrameWndEx::AdjustClientArea Сокращает область клиента, чтобы разрешить границу.
CMDIFrameWndEx::AdjustDockingLayout Пересчитывает макет всех закрепленных панелей.
CMDIFrameWndEx::AreMDITabs Определяет, включена ли функция вкладок MDI или функция "Группы с вкладками MDI".
CMDIFrameWndEx::CanConvertControlBarToMDIChild Вызывается платформой, чтобы определить, может ли окно фрейма преобразовать панели закрепления в документы с вкладками.
CMDIFrameWndEx::ControlBarToTabbedDocument Преобразует указанную область док-станции в документ с вкладками.
CMDIFrameWndEx::CreateDocumentWindow Создает дочернее окно документа.
CMDIFrameWndEx::CreateNewWindow Вызывается платформой для создания нового окна.
CMDIFrameWndEx::CreateObject Используется платформой для создания динамического экземпляра этого типа класса.
CMDIFrameWndEx::DockPane Закрепление указанной области в окне фрейма.
CMDIFrameWndEx::DockPaneLeftOf Закрепляет одну область слева от другой области.
CMDIFrameWndEx::EnableAutoHidePanes Включает режим автоматического скрытия для панелей при закреплении на указанных сторонах главного окна фрейма.
CMDIFrameWndEx::EnableDocking Включает закрепление панелей, принадлежащих окну фрейма MDI.
CMDIFrameWndEx::EnableFullScreenMainMenu Отображает или скрывает главное меню в полноэкранном режиме.
CMDIFrameWndEx::EnableFullScreenMode Включает полноэкранный режим для окна фрейма.
CMDIFrameWndEx::EnableLoadDockState Включает или отключает загрузку состояния док-станции.
CMDIFrameWndEx::EnableMDITabbedGroups Включает или отключает функцию "Группы с вкладками MDI".
CMDIFrameWndEx::EnableMDITabs Включает или отключает функцию вкладок MDI. При включении окно фрейма отображает вкладку для каждого дочернего окна MDI.
CMDIFrameWndEx::EnableMDITabsLastActiveActivation Указывает, следует ли активировать последнюю активную вкладку при закрытии текущей вкладки.
CMDIFrameWndEx::EnablePaneMenu Включает или отключает автоматическое создание и управление всплывающего меню области, в котором отображается список областей приложений.
CMDIFrameWndEx::EnableWindowsDialog Вставляет элемент меню, идентификатор команды которого вызывает диалоговое CMFCWindowsManagerDialog окно.
CMDIFrameWndEx::GetActivePopup Возвращает указатель на отображаемое в данный момент контекстное меню.
CMDIFrameWndEx::GetPane Возвращает указатель на область с указанным идентификатором элемента управления.
CMDIFrameWndEx::GetDefaultResId Возвращает идентификатор общих ресурсов окна кадров MDI.
CMDIFrameWndEx::GetMDITabGroups Возвращает список окон с вкладками MDI.
CMDIFrameWndEx::GetMDITabs Возвращает ссылку на подчеркнутое окно табуляции.
CMDIFrameWndEx::GetMDITabsContextMenuAllowedItems Возвращает сочетание флагов, определяющих, какие элементы контекстного меню допустимы при включенной функции MDI Tabbed Groups.
CMDIFrameWndEx::GetMenuBar Возвращает указатель на объект строки меню, подключенный к окну кадра.
CMDIFrameWndEx::GetRibbonBar Извлекает элемент управления панели ленты для кадра.
CMDIFrameWndEx::GetTearOffBars Возвращает список производных CPaneобъектов, которые находятся в состоянии разрыва.
CMDIFrameWndEx::GetThisClass Вызывается платформой для получения указателя на CRuntimeClass объект, связанный с этим типом класса.
CMDIFrameWndEx::GetToolbarButtonToolTipText Вызывается платформой, когда приложение отображает подсказку для кнопки панели инструментов.
CMDIFrameWndEx::InsertPane Регистрирует указанную область в диспетчере закреплений.
CMDIFrameWndEx::IsFullScreen Определяет, находится ли окно фрейма в полноэкранном режиме.
CMDIFrameWndEx::IsMDITabbedGroup Определяет, включена ли функция MDI Tabbed Groups.
CMDIFrameWndEx::IsMemberOfMDITabGroup Определяет, находится ли указанное окно с вкладками в списке окон, которые находятся в группах с вкладками MDI.
CMDIFrameWndEx::IsMenuBarAvailable Определяет, имеет ли окно фрейма строку меню.
CMDIFrameWndEx::IsPointNearDockSite Определяет, находится ли указанная точка рядом с сайтом док-станции.
CMDIFrameWndEx::IsPrintPreview Определяет, находится ли окно фрейма в режиме предварительного просмотра.
CMDIFrameWndEx::LoadFrame Создает окно фрейма из сведений о ресурсах. (Переопределяет CMDIFrameWnd::LoadFrame.)
CMDIFrameWndEx::LoadMDIState Загружает указанный макет групп с вкладками MDI и список ранее открытых документов.
CMDIFrameWndEx::MDITabMoveToNextGroup Перемещает активную вкладку из текущего активного окна табуляции в следующую или предыдущую группу табуляции.
CMDIFrameWndEx::MDITabNewGroup Создает новую группу табуляции с одним окном.
CMDIFrameWndEx::NegotiateBorderSpace Согласовывает пространство границы в окне кадра во время активации OLE на месте.
CMDIFrameWndEx::OnCloseDockingPane Вызывается платформой, когда пользователь нажимает кнопку "Закрыть " на панели закрепления.
CMDIFrameWndEx::OnCloseMiniFrame Вызывается платформой, когда пользователь нажимает кнопку "Закрыть " в окне с плавающей мини-рамкой.
CMDIFrameWndEx::OnClosePopupMenu Вызывается платформой, когда активное всплывающее меню обрабатывает WM_DESTROY сообщение.
CMDIFrameWndEx::OnCmdMsg Вызывается платформой для маршрутизации и отправки сообщений команд и обновления объектов пользовательского интерфейса команд.
CMDIFrameWndEx::OnDrawMenuImage Вызывается платформой при отрисовке изображения, связанного с пунктом меню.
CMDIFrameWndEx::OnDrawMenuLogo Вызывается платформой при CMFCPopupMenuобработке WM_PAINT сообщения.
CMDIFrameWndEx::OnEraseMDIClientBackground Вызывается платформой, когда окно кадров MDI обрабатывает WM_ERASEBKGND сообщение.
CMDIFrameWndEx::OnMenuButtonToolHitTest Вызывается платформой, когда CMFCToolBarButtonобъект обрабатывает WM_NCHITTEST сообщение.
CMDIFrameWndEx::OnMoveMiniFrame Вызывается платформой для перемещения окна мини-кадра.
CMDIFrameWndEx::OnSetPreviewMode Задает режим предварительного просмотра основного окна фрейма приложения. (Переопределяет CFrameWnd::OnSetPreviewMode.)
CMDIFrameWndEx::OnShowCustomizePane Вызывается платформой при активации панели быстрого настройки.
CMDIFrameWndEx::OnShowMDITabContextMenu Вызывается платформой, когда контекстное меню должно отображаться на одной из вкладок. (Допустимо только для групп с вкладками MDI.)
CMDIFrameWndEx::OnShowPanes Вызывается платформой для отображения или скрытия панелей.
CMDIFrameWndEx::OnShowPopupMenu Вызывается платформой при активации всплывающего меню.
CMDIFrameWndEx::OnSizeMDIClient Вызывается платформой при изменении размера окна MDI клиента.
CMDIFrameWndEx::OnTearOffMenu Вызывается платформой при активации меню с перемещаемой панелью.
CMDIFrameWndEx::OnUpdateFrameMenu Вызывается платформой для обновления меню кадров. (Переопределяет CMDIFrameWnd::OnUpdateFrameMenu.)
CMDIFrameWndEx::PaneFromPoint Возвращает область док-станции, содержащую указанную точку.
CMDIFrameWndEx::PreTranslateMessage Используется классом CWinApp для перевода сообщений окна перед их отправкой в TranslateMessage функции Windows и DispatchMessage Windows. (Переопределяет CMDIFrameWnd::PreTranslateMessage.)
CMDIFrameWndEx::RecalcLayout Вызывается платформой для перерасчета макета окна фрейма. (Переопределяет CFrameWnd::RecalcLayout.)
CMDIFrameWndEx::RemovePaneFromDockManager Отменяет регистрацию области и удаляет ее из диспетчера док-станции.
CMDIFrameWndEx::SaveMDIState Сохраняет текущий макет групп на вкладках MDI и список ранее открытых документов.
CMDIFrameWndEx::SetPrintPreviewFrame Задает окно рамки предварительного просмотра печати.
CMDIFrameWndEx::SetupToolbarMenu Изменяет объект панели инструментов путем поиска фиктивных элементов и замены их указанными элементами, определяемыми пользователем.
CMDIFrameWndEx::ShowFullScreen Переключает основной кадр из регулярного режима в полноэкранный режим.
CMDIFrameWndEx::ShowPane Отображает или скрывает указанную область.
CMDIFrameWndEx::ShowWindowsDialog CMFCWindowsManagerDialog Создает поле и открывает его.
CMDIFrameWndEx::TabbedDocumentToControlBar Преобразует указанный документ с вкладками в область док-станции.
CMDIFrameWndEx::UpdateCaption Вызывается платформой для обновления заголовка рамки окна.
CMDIFrameWndEx::UpdateMDITabbedBarsIcons Задает значок для каждой панели вкладок MDI.
CMDIFrameWndEx::WinHelp Вызывается платформой для запуска приложения WinHelp или контекстной справки. (Переопределяет CWnd::WinHelp.)

Элементы данных

Имя Описание
CMDIFrameWndEx::m_bCanConvertControlBarToMDIChild Определяет, можно ли преобразовать панели закрепления в дочерние окна MDI.
CMDIFrameWndEx::m_bDisableSetRedraw Включает или отключает оптимизацию перерисовки для дочерних окон MDI.

Замечания

Чтобы воспользоваться преимуществами расширенных возможностей настройки в приложении MDI, наследуйте класс окна окна MDI приложения, CMDIFrameWndEx а не CMDIFrameWnd.

Пример

Следующий пример является производным от CMDIFrameWndExкласса. Этот фрагмент кода поставляется из примера DrawClient: приложение для рисования объектов OLE на основе ленты MFC.

class CMainFrame : public CMDIFrameWndEx
{
   DECLARE_DYNAMIC(CMainFrame)
public:
   struct XStyle
   {
      COLORREF clrFill;
      COLORREF clrLine;
   };

public:
   CMainFrame();

   // Attributes
public:
   CMFCRibbonBar *GetRibbonBar() { return &m_wndRibbonBar; }

   // Operations
public:
   void UpdateUI(CDrawView *pCurrView);
   void UpdateContextTab(CDrawView *pCurrView);
   void UpdateContextTabFromObject(CDrawObjList &list);

   COLORREF GetColorFromColorButton(int nButtonID);
   int GetWeightFromLineWeight(int nButtonID);
   BOOL GetStyleFromStyles(XStyle &style);

   void SetRibbonContextCategory(UINT uiCategoryID);
   void ActivateRibbonContextCategory(UINT uiCategoryID);

   // Implementation
public:
   virtual ~CMainFrame();
#ifdef _DEBUG
   virtual void AssertValid() const;
   virtual void Dump(CDumpContext &dc) const;
#endif

protected:
   // control bar embedded members
   CMFCRibbonStatusBar m_wndStatusBar;
   CMFCRibbonBar m_wndRibbonBar;

   CMFCRibbonApplicationButton m_MainButton;

   // panel images
   CMFCToolBarImages m_PanelImages;

   // Document colors for demo:
   CList<COLORREF, COLORREF> m_lstMainColors;
   CList<COLORREF, COLORREF> m_lstAdditionalColors;
   CList<COLORREF, COLORREF> m_lstStandardColors;

   // Generated message map functions
protected:
   //{{AFX_MSG(CMainFrame)
   afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
   afx_msg void OnAppLook(UINT id);
   afx_msg void OnUpdateAppLook(CCmdUI *pCmdUI);
   afx_msg void OnWindowManager();
   afx_msg void OnMdiMoveToNextGroup();
   afx_msg void OnMdiMoveToPrevGroup();
   afx_msg void OnMdiNewHorzTabGroup();
   afx_msg void OnMdiNewVertGroup();
   afx_msg void OnMdiCancel();
   afx_msg LRESULT OnRibbonCustomize(WPARAM wp, LPARAM lp);
   afx_msg LRESULT OnHighlightRibbonListItem(WPARAM wp, LPARAM lp);
   afx_msg void OnToolsOptions();
   afx_msg void OnDummy();
   afx_msg void OnSysColorChange();
   //}}AFX_MSG

   DECLARE_MESSAGE_MAP()

   virtual BOOL OnShowMDITabContextMenu(CPoint point, DWORD dwAllowedItems, BOOL bDrop);
   virtual BOOL OnShowPopupMenu(CMFCPopupMenu *pMenuPopup);

   void ShowOptions(int nPage);
   void CreateDocumentColors();

private:
   BOOL CreateRibbonBar();
   BOOL CreateStatusBar();

   void InitMainButton();
   void InitHomeCategory();
   void InitViewCategory();
   void InitTabButtons();

   void AddContextTab_Format();

   void AdjustObjectSubmenu(CMFCPopupMenu *pMenuPopup);
   void UpdateStatusBarCountPane(int nID, CString strText, int nCount);

   UINT m_nAppLook;
};

Иерархия наследования

CObject

CCmdTarget

CWnd

CFrameWnd

CMDIFrameWnd

CMDIFrameWndEx

Требования

Заголовок: afxMDIFrameWndEx.h

CMDIFrameWndEx::ActiveItemRecalcLayout

Пересчитывает макет активного элемента.

void ActiveItemRecalcLayout();

CMDIFrameWndEx::AddPane

Регистрирует область с помощью диспетчера закрепления.

BOOL AddPane(
    CBasePane* pControlBar,
    BOOL bTail=TRUE);

Параметры

pControlBar
[in] Указатель на область для регистрации.

bTail
[in] Указывает, следует ли добавить эту область в конец списка.

Возвращаемое значение

Возвращает ненулевое значение, если область зарегистрирована успешно. Возвращает значение 0, если область уже зарегистрирована в диспетчере закреплений.

Замечания

Каждая панель должна быть зарегистрирована в CDockingManager классе , прежде чем она сможет принять участие в макете док-станции. Используйте этот метод, чтобы уведомить диспетчер док-станций, который требуется закрепить в определенной области. После регистрации области диспетчер док-станции выравнивает его на основе его параметра выравнивания и положения в списке панелей, поддерживаемых диспетчером закреплений.

CMDIFrameWndEx::AdjustClientArea

Сокращает область клиента, чтобы разрешить границу.

virtual void AdjustClientArea();

CMDIFrameWndEx::AdjustDockingLayout

Пересчитывает макет всех закрепленных панелей.

virtual void AdjustDockingLayout(HDWP hdwp=NULL);

Параметры

hdwp
[in] Определяет структуру с несколькими окнами. Это значение можно получить путем вызова BeginDeferWindowPos.

Замечания

Вызовите эту функцию-член, чтобы пересчитывать макет всех панелей, закрепленных в окне кадра.

CMDIFrameWndEx::AreMDITabs

Определяет, включена ли функция вкладок MDI или функция групп с вкладками MDI.

BOOL AreMDITabs(int* pnMDITabsType=NULL) const;

Параметры

pnMDITabsType
[out] Указатель на целочисленную переменную, указывающую, какие функции включены:

  • 0. Все функции отключены.
  • 1. Вкладки MDI включены.
  • 2. Включена группа вкладок MDI.

Возвращаемое значение

Возвращает значение TRUE , если включены вкладки MDI или группы с вкладками MDI.

Возвращает, FALSE если ни одна из перечисленных выше функций не включена.

Замечания

Эта функция позволяет определить, включены ли вкладки MDI или группы с вкладками MDI для окна фрейма. Используйте CMDIFrameWndEx::EnableMDITabs для включения или отключения функции вкладок MDI.

Используйте CMDIFrameWndEx::EnableMDITabbedGroups для включения или отключения функции групп с вкладками MDI.

CMDIFrameWndEx::CanConvertControlBarToMDIChild

Вызывается платформой, чтобы определить, может ли окно фрейма преобразовать панели закрепления в документы с вкладками

virtual BOOL CanConvertControlBarToMDIChild();

Возвращаемое значение

Возвращает значение TRUE , если окно фрейма может преобразовать панели док-станции в документы с вкладками; в противном случае возвращается FALSE.

Замечания

Переопределите этот метод в производном классе и вернитесь TRUE , чтобы включить преобразование панелей закрепления на вкладки. Кроме того, можно задать значение CMDIFrameWndEx::m_bCanConvertControlBarToMDIChild TRUE.

CMDIFrameWndEx::ControlBarToTabbedDocument

Преобразует указанную область док-станции в документ с вкладками.

virtual CMDIChildWndEx* ControlBarToTabbedDocument(CDockablePane* pBar);

Параметры

pBar
Указатель на область док-станции для преобразования.

Возвращаемое значение

Возвращает указатель на новое дочернее окно MDI, содержащее область док-станции.

Замечания

Этот метод преобразует область закрепления в документ с вкладками. При вызове этого метода платформа создает CMDIChildWndEx объект класса , удаляет область док-станции из диспетчера док-станций и добавляет область док-станции в новое дочернее окно MDI. Дочернее окно MDI изменяет размер области док-станции для покрытия всей клиентской области

CMDIFrameWndEx::CreateDocumentWindow

Создает дочернее окно документа.

virtual CMDIChildWndEx* CreateDocumentWindow(
    LPCTSTR lpcszDocName,
    CObject* pObj);

Параметры

lpcszDocName
[in] Текстовая строка, содержащая идентификатор документа. Как правило, это полный путь к файлу документа.

pObj
[in] Указатель на определяемый пользователем объект. Например, разработчик может создать структуру данных для конкретного приложения, описывающую документ и рассказывая, как документ должен быть инициализирован при запуске.

Возвращаемое значение

Указатель на объект CMDIChildWndEx.

Замечания

Платформа вызывает этот метод при загрузке списка документов, ранее сохраненных в реестре.

Переопределите этот метод, чтобы создать документы при загрузке из реестра.

Пример

В следующем примере показано, как CreateDocumentWindow используется в примере VisualStudioDemo: приложение MFC Visual Studio.

В этом примере g_strStartViewName может быть имя виртуального документа (например, начальная страница), который не загружается из файла диска. Поэтому нам нужна специальная обработка для обработки этого дела.

CMainFrame::CMainFrame()
{
   CMFCPopupMenu::SetForceShadow(TRUE);
   m_bCanConvertControlBarToMDIChild = TRUE;
}

CMDIFrameWndEx::CreateNewWindow

Вызывается платформой для создания нового окна.

virtual CMDIChildWndEx* CreateNewWindow(
    LPCTSTR lpcszDocName,
    CObject* pObj);

Параметры

lpcszDocName
[in] Имя документа.

pObj
[in] Зарезервировано для дальнейшего использования.

Возвращаемое значение

Указатель на новое окно.

CMDIFrameWndEx::DockPane

Закрепление указанной области в окне фрейма.

void DockPane(
    CBasePane* pBar,
    UINT nDockBarID=0,
    LPCRECT lpRect=NULL);

Параметры

pBar
[in] Указатель на панель на закрепление.

nDockBarID
[in] Указывает, к каким сторонам окна фрейма необходимо прикрепиться.

lpRect
[in] Не используется.

Замечания

Этот метод закрепляет указанную область с одной из сторон окна кадра, указанной при CBasePane::EnableDocking вызове.CMDIFrameWndEx::EnableDocking

Пример

В следующем примере иллюстрируется использование метода DockPane. Этот фрагмент кода поставляется из примера VisualStudioDemo: приложение MFC Visual Studio.

DockPane(&m_wndMenuBar);
DockPane(&m_wndToolBar);
DockPane(&m_wndPropertiesBar);

DockPane(&m_wndToolbarBuild);

CMDIFrameWndEx::DockPaneLeftOf

Закрепляет одну область слева от другой области.

BOOL DockPaneLeftOf(
    CPane* pBar,
    CPane* pLeftOf);

Параметры

pBar
[in] Указатель на панель закрепления.

pLeftOf
[in] Указатель на область, которая служит сайтом док-станции.

Возвращаемое значение

Возвращает, TRUE если операция выполнена успешно. В противном случае возвращает значение FALSE.

Замечания

Вызовите этот метод, чтобы закрепить несколько объектов панели в предопределенном порядке. Этот метод закрепляет область, указанную pBar слева от области, указанной в pLeftOfпараметре .

Пример

В следующем примере показано, как DockPaneLeftOf метод используется в примере VisualStudioDemo: приложение MFC Visual Studio.

DockPane(&m_wndToolbarBuild);
DockPaneLeftOf(&m_wndToolbarEdit, &m_wndToolbarBuild);

CMDIFrameWndEx::EnableAutoHidePanes

Включает режим автоматического скрытия для панелей при закреплении на указанных сторонах главного окна фрейма.

BOOL EnableAutoHidePanes(DWORD dwDockStyle);

Параметры

dwDockStyle
[in] Указывает стороны основного окна фрейма, которое будет включено. Используйте один или несколько следующих флагов.

  • CBRS_ALIGN_LEFT
  • CBRS_ALIGN_RIGHT
  • CBRS_ALIGN_TOP
  • CBRS_ALIGN_BOTTOM

Возвращаемое значение

Вызовите эту функцию, чтобы включить режим автоматического скрытия для панелей при закреплении на указанных сторонах главного окна фрейма.

Пример

В следующем примере показано, как EnableAutoHidePanes метод используется в примере VisualStudioDemo: приложение MFC Visual Studio.

EnableAutoHidePanes(CBRS_ALIGN_ANY);

Замечания

CMDIFrameWndEx::EnableDocking

Включает закрепление панелей, принадлежащих окну фрейма MDI.

BOOL EnableDocking(DWORD dwDockStyle);

Параметры

dwDockStyle
[in] Указывает стиль закрепления, который требуется применить.

Возвращаемое значение

Замечания

Вызовите эту функцию, чтобы включить закрепление панелей, принадлежащих объекту CMDIFrameWndEx .

Пример

В следующем примере показано, как EnableDocking метод используется в примере VisualStudioDemo: приложение MFC Visual Studio.

EnableDocking(CBRS_ALIGN_ANY);

CMDIFrameWndEx::EnableFullScreenMainMenu

Отображает или скрывает главное меню в полноэкранном режиме.

void EnableFullScreenMainMenu(BOOL bEnableMenu);

Параметры

bEnableMenu
[in] TRUE чтобы отобразить главное меню в полноэкранном режиме или FALSE скрыть его.

Замечания

CMDIFrameWndEx::EnableFullScreenMode

Включает полноэкранный режим для окна фрейма.

void EnableFullScreenMode(UINT uiFullScreenCmd);

Параметры

uiFullScreenCmd
[in] Идентификатор команды, которая включает или отключает полноэкранный режим.

Замечания

В полноэкранном режиме все панели элементов управления, панели инструментов и меню скрыты, а активное представление изменяется, чтобы занять полноэкранный режим. При включении полноэкранного режима необходимо указать идентификатор команды, которая включает или отключает ее. Можно вызвать EnableFullScreenMode из функции основного кадра OnCreate . При переключении окна кадра в полноэкранный режим платформа создает плавающую панель инструментов с одной кнопкой с указанным идентификатором команды. Если вы хотите сохранить главное меню на экране, вызовите CMDIFrameWndEx::EnableFullScreenMainMenu.

CMDIFrameWndEx::EnableLoadDockState

Включает или отключает загрузку состояния док-станции.

void EnableLoadDockState(BOOL bEnable = TRUE);

Параметры

bEnable
[in] TRUE чтобы включить загрузку состояния док-станции, FALSE чтобы отключить загрузку состояния док-станции.

Замечания

CMDIFrameWndEx::EnableMDITabbedGroups

Включает или отключает функцию групп с вкладками MDI для окна фрейма.

void EnableMDITabbedGroups(
    BOOL bEnable,
    const CMDITabInfo& params);

Параметры

bEnable
[in] Если функция групп с вкладками MDI включена; если TRUEFALSEфункция групп с вкладками MDI отключена.

params
[in] Указывает параметры, которые платформа применяется к дочерним окнам, созданным в клиентской области MDI.

Замечания

Используйте этот метод, чтобы включить или отключить функцию групп с вкладками MDI. Эта функция позволяет приложениям MDI отображать дочерние окна в виде вкладок, которые выровнены по вертикали или горизонтально в клиентской области MDI. Группы окон табуляции разделены разделимы разделимы. Пользователь может изменить размер групп табуляции с помощью разбиения.

Пользователь может:

  • Перетащите отдельные вкладки между группами.
  • Перетащите отдельные вкладки в край окна, чтобы создать новые группы.
  • Перемещение вкладок или создание новых групп с помощью контекстного меню.
  • Приложение может сохранить текущий макет вкладок окон и список открытых документов.

При вызове этого метода с заданным bEnable значением FALSEparams игнорируется.

Даже если группы с вкладками MDI уже включены, можно снова вызвать этот метод, чтобы изменить параметры дочерних окон. Вызовите метод с bEnable заданным значением TRUE и измените члены объекта, указанного CMDITabInfo параметром params .

Дополнительные сведения об использовании групп с вкладками MDI см. в разделе MDI Tabbed Groups.

Пример

В следующем примере показано, как EnableMDITabbedGroups используется в примере VisualStudioDemo: приложение MFC Visual Studio.

CMDITabInfo mdiTabParams;
mdiTabParams.m_bTabCustomTooltips = TRUE;

if (bMDITabsVS2005Look)
{
   mdiTabParams.m_style = CMFCTabCtrl::STYLE_3D_VS2005;
   mdiTabParams.m_bDocumentMenu = TRUE;
}
else if (bOneNoteTabs)
{
   mdiTabParams.m_style = CMFCTabCtrl::STYLE_3D_ONENOTE;
   mdiTabParams.m_bAutoColor = bMDITabColors;
}

if (bActiveTabCloseButton)
{
   mdiTabParams.m_bTabCloseButton = FALSE;
   mdiTabParams.m_bActiveTabCloseButton = TRUE;
}

EnableMDITabbedGroups(TRUE, mdiTabParams);

CMDIFrameWndEx::EnableMDITabs

Включает или отключает функцию вкладок MDI для окна кадров MDI. При включении окно фрейма отображает вкладку для каждого дочернего окна MDI.

void EnableMDITabs(
    BOOL bEnable=TRUE,
    BOOL bIcons=TRUE,
    CMFCTabCtrl::Location tabLocation=CMFCTabCtrl::LOCATION_BOTTOM,
    BOOL bTabCloseButton=FALSE,
    CMFCTabCtrl::Style style=CMFCTabCtrl::STYLE_3D_SCROLLED,
    BOOL bTabCustomTooltips=FALSE,
    BOOL bActiveTabCloseButton=FALSE);

Параметры

bEnable
Указывает, включены ли вкладки.

bIcons
Указывает, должны ли отображаться значки на вкладках.

tabLocation
Указывает расположение меток вкладок.

bTabCloseButton
Указывает, следует ли отображать кнопки закрытия вкладки.

style
Задает стиль вкладок. Используется STYLE_3D_SCROLLED для обычных вкладок или STYLE_3D_ONENOTE вкладок Microsoft OneNote.

bTabCustomTooltips
Указывает, включены ли пользовательские подсказки.

bActiveTabCloseButton
Если TRUEкнопка "Закрыть " будет отображаться на активной вкладке вместо правого угла области вкладки.

Замечания

Вызовите этот метод, чтобы включить или отключить функцию вкладок MDI для окна кадров MDI. При включении все дочерние окна отображаются в виде вкладок.

Метки вкладок могут находиться в верхней или нижней части кадра в зависимости от параметра tabLocation. Можно указать либо (параметр по умолчанию), либо CMFCTabCtrl::LOCATION_BOTTOM CMFCTabCtrl::LOCATION_TOP.

Если bTabCustomTooltips это TRUEтак, AFX_WM_ON_GET_TAB_TOOLTIP сообщение будет отправлено в главное окно фрейма. Код может обрабатывать это сообщение и предоставлять платформу пользовательскими подсказками для вкладок MDI.

Пример

В следующем примере показано, как EnableMDITabs используется в примере MDITabsDemo: приложение MFC Tabbed MDI.

void CMainFrame::UpdateMDITabs(BOOL bResetMDIChild)
{
   CMDITabInfo params;
   HWND hwndActive = NULL;

   switch (theApp.m_Options.m_nMDITabsType)
   {
   case CMDITabOptions::None:
   {
      BOOL bCascadeMDIChild = FALSE;

      if (IsMDITabbedGroup())
      {
         EnableMDITabbedGroups(FALSE, params);
         bCascadeMDIChild = TRUE;
      }
      else if (AreMDITabs())
      {
         EnableMDITabs(FALSE);
         bCascadeMDIChild = TRUE;
      }

      if (bCascadeMDIChild)
      {
         // CMDIClientAreaWnd m_wndClientArea
         hwndActive = (HWND)m_wndClientArea.SendMessage(WM_MDIGETACTIVE);
         m_wndClientArea.PostMessage(WM_MDICASCADE);
         m_wndClientArea.UpdateTabs(false);
         m_wndClientArea.SetActiveTab(hwndActive);
         ::BringWindowToTop(hwndActive);
      }
   }
   break;

   case CMDITabOptions::MDITabsStandard:
      hwndActive = (HWND)m_wndClientArea.SendMessage(WM_MDIGETACTIVE);
      m_wndClientArea.PostMessage(WM_MDIMAXIMIZE, LPARAM(hwndActive), 0L);
      ::BringWindowToTop(hwndActive);

      EnableMDITabs(TRUE, theApp.m_Options.m_bMDITabsIcons, theApp.m_Options.m_bTabsOnTop ? CMFCTabCtrl::LOCATION_TOP : CMFCTabCtrl::LOCATION_BOTTOM, theApp.m_Options.m_nTabsStyle);

      GetMDITabs().EnableAutoColor(theApp.m_Options.m_bTabsAutoColor);
      GetMDITabs().EnableTabDocumentsMenu(theApp.m_Options.m_bMDITabsDocMenu);
      GetMDITabs().EnableTabSwap(theApp.m_Options.m_bDragMDITabs);
      GetMDITabs().SetTabBorderSize(theApp.m_Options.m_nMDITabsBorderSize);
      GetMDITabs().SetFlatFrame(theApp.m_Options.m_bFlatFrame);
      GetMDITabs().EnableCustomToolTips(theApp.m_Options.m_bCustomTooltips);
      GetMDITabs().EnableCustomToolTips(theApp.m_Options.m_bCustomTooltips);
      GetMDITabs().EnableActiveTabCloseButton(theApp.m_Options.m_bActiveTabCloseButton);
      break;

CMDIFrameWndEx::EnableMDITabsLastActiveActivation

Указывает, следует ли открывать последнюю активную вкладку, когда пользователь закрывает текущую вкладку.

void EnableMDITabsLastActiveActivation(BOOL bLastActiveTab=TRUE);

Параметры

bLastActiveTab
[in] Если TRUEвключите активацию последней активной вкладки. Если FALSEотключите активацию последней активной вкладки.

Замечания

При закрытии активной вкладки можно открыть два способа:

  • Активируйте следующую вкладку.
  • Активация ранее активной вкладки.

Реализация по умолчанию использует первый способ.

Используйте EnableMDITabsLastActiveActivation для включения второго способа активации вкладок. Он эмулирует способ открытия дочерних окон MDI Windows.

CMDIFrameWndEx::EnablePaneMenu

Включает или отключает автоматическое создание и управление всплывающего меню области, в котором отображается список областей приложений.

void EnablePaneMenu(
    BOOL bEnable,
    UINT uiCustomizeCmd,
    const CString& strCustomizeLabel,
    UINT uiViewToolbarsMenuEntryID,
    BOOL bContextMenuShowsToolbarsOnly=FALSE,
    BOOL bViewMenuShowsToolbarsOnly=FALSE);

Параметры

bEnable
[in] Если TRUEвключена автоматическая обработка меню панели; если FALSEавтоматическая обработка отключена.

uiCustomizeCmd
[in] Идентификатор команды элемента меню "Настройка ". Этот пункт меню обычно добавляется в конец списка панелей.

strCustomizeLabel
[in] Текст, отображаемый для элемента меню "Настройка " (для локализации).

uiViewToolbarsMenuEntryID
[in] Указывает идентификатор элемента меню панели инструментов, открывающего меню панели. Обычно это подменю панели инструментов меню "Вид".

bContextMenuShowsToolbarsOnly
[in] Если TRUEв меню области отображается только список панелей инструментов. Если FALSEв меню отображается список панелей инструментов и закрепления.

bViewMenuShowsToolbarsOnly
[in] Если TRUEв меню области отображается только список панелей инструментов. Если FALSEв меню отображается список панелей инструментов и закрепления.

Замечания

Всплывающее меню области отображает список панелей приложения и позволяет пользователю отображать или скрывать отдельные панели.

Пример

В следующем примере показано, как EnablePaneMenu используется в примере VisualStudioDemo: приложение MFC Visual Studio.

// Enable pane context menu(list of bars + customize command):
EnablePaneMenu(TRUE, ID_VIEW_CUSTOMIZE, _T("Customize..."), ID_VIEW_TOOLBARS, FALSE, TRUE);

CMDIFrameWndEx::EnableWindowsDialog

Вставляет элемент меню, идентификатор команды которого вызывает диалоговое CMFCWindowsManagerDialog окно.

void EnableWindowsDialog(
    UINT uiMenuId,
    LPCTSTR lpszMenuText,
    BOOL bShowAllways=FALSE,
    BOOL bShowHelpButton=FALSE);

void EnableWindowsDialog(
    UINT uiMenuId,
    UINT uiMenuTextResId,
    BOOL bShowAllways=FALSE,
    BOOL bShowHelpButton=FALSE);

Параметры

uiMenuId
[in] Указывает идентификатор ресурса меню.

lpszMenuText
[in] Задает текст элемента.

bShowHelpButton
[in] Указывает, следует ли отображать кнопку справки в диалоговом окне управления окнами.

uiMenuTextResId
[in] Идентификатор ресурса строки, содержащий текстовую строку элемента.

Замечания

Используйте этот метод для вставки элемента меню, команда которого вызывает диалоговое окно управления дочерними окнами MDI ( CMFCWindowsManagerDialog класс). Новый элемент вставляется в меню, заданном uiMenuId. Вызов при EnableWindowsDialog обработке WM_CREATE сообщения.

Пример

В следующем примере показано, как EnableWindowsDialog используется в примере VisualStudioDemo: приложение MFC Visual Studio.

// Enable windows manager:
EnableWindowsDialog(ID_WINDOW_MANAGER, _T("Windows..."), TRUE);

CMDIFrameWndEx::GetActivePopup

Возвращает указатель на отображаемое в данный момент контекстное меню.

CMFCPopupMenu* GetActivePopup() const;

Возвращаемое значение

Указатель на активное всплывающее меню; NULL Если всплывающее меню не активно.

Замечания

Используйте эту функцию для получения указателя на CMFCPopupMenu объект класса , отображаемый в данный момент.

CMDIFrameWndEx::GetDefaultResId

Возвращает идентификатор общих ресурсов окна кадров MDI.

UINT GetDefaultResId() const;

Возвращаемое значение

Значение идентификатора ресурса. Значение 0, если окно фрейма не имеет строки меню.

Замечания

Этот метод возвращает идентификатор ресурса, указанный при загрузке CFrameWnd::LoadFrameокна фрейма MDI.

CMDIFrameWndEx::GetMDITabGroups

Возвращает список окон с вкладками MDI.

const CObList& GetMDITabGroups() const;

Возвращаемое значение

Ссылка на CObList объект класса , содержащий список окон с вкладками. Не сохраняйте или не изменяйте список.

Замечания

Используйте этот метод для доступа к списку окон с вкладками. Это может быть полезно, если вы хотите изменить или запросить некоторые параметры отдельных окон табуляции.

CMDIFrameWndEx::GetMDITabs

Возвращает ссылку на подчеркнутое окно табуляции.

CMFCTabCtrl& GetMDITabs();

Возвращаемое значение

Ссылка на подчеркнутое окно табуляции.

CMDIFrameWndEx::GetMDITabsContextMenuAllowedItems

Возвращает сочетание флагов, определяющих, какие операции допустимы при включенной функции MDI Tabbed Groups.

DWORD GetMDITabsContextMenuAllowedItems();

Возвращаемое значение

Побитовое сочетание "или" (|) следующих флагов:

  • AFX_MDI_CREATE_VERT_GROUP — может создать группу вертикальных вкладок.
  • AFX_MDI_CREATE_HORZ_GROUP — может создать горизонтальную группу вкладок.
  • AFX_MDI_CAN_MOVE_PREV — может переместить вкладку в предыдущую группу вкладок.
  • AFX_MDI_CAN_MOVE_NEXT — может переместить вкладку в следующую группу вкладок.

Замечания

Если включена функция "Группы с вкладками MDI", необходимо знать, какие операции разрешены на вкладках определенного окна. Этот метод анализирует текущий макет табуляции окон и возвращает сочетание флагов, которые можно использовать для сборки, например контекстного меню.

Вы можете создать новую группу вкладок, если все окна с вкладками выровнены по вертикали или только в одном окне с вкладками.

Вы можете создать новую горизонтальную группу вкладок, если все окна с вкладками выровнены по горизонтали или только в одном окне с вкладками.

Вкладку можно переместить в предыдущую группу только в том случае, если в окне с вкладками есть несколько вкладок.

Вкладку можно переместить в следующую группу только в том случае, если в окне с вкладками есть несколько вкладок.

CMDIFrameWndEx::GetMenuBar

Возвращает указатель на объект строки меню, подключенный к окну кадра.

const CMFCMenuBar* GetMenuBar() const;

Возвращаемое значение

Указатель на объект строки меню.

CMDIFrameWndEx::GetPane

Возвращает указатель на область с указанным идентификатором элемента управления.

CBasePane* GetPane(UINT nID);

Параметры

nID
[in] Идентификатор элемента управления.

Возвращаемое значение

Указатель на область с указанным идентификатором элемента управления, если он существует. В противном случае — NULL.

CMDIFrameWndEx::GetRibbonBar

Извлекает элемент управления панели ленты для кадра.

CMFCRibbonBar* GetRibbonBar();

Возвращаемое значение

Указатель на CMFCRibbonBar класс для кадра.

Замечания

CMDIFrameWndEx::GetTearOffBars

Возвращает список отключаемых меню.

const CObList& GetTearOffBars() const;

Возвращаемое значение

Ссылка на CObList объект класса , содержащий коллекцию указателей на CPaneпроизводные объекты, которые находятся в состоянии отключения.

Замечания

CMDIFrameWndEx поддерживает коллекцию отключаемых меню. Используйте этот метод для получения ссылки на этот список.

CMDIFrameWndEx::GetToolbarButtonToolTipText

Вызывается платформой, когда приложение отображает подсказку для кнопки панели инструментов.

virtual BOOL GetToolbarButtonToolTipText(
    CMFCToolBarButton* pButton,
    CString& strTTText);

Параметры

pButton
[in] Указатель на кнопку панели инструментов.

strTTText
[in] Текст подсказки, отображаемый для кнопки.

Возвращаемое значение

TRUE Значение , если подсказка отображается. В противном случае — значение FALSE.

Замечания

CMDIFrameWndEx::InsertPane

Регистрирует указанную область в диспетчере закреплений.

BOOL InsertPane(
    CBasePane* pControlBar,
    CBasePane* pTarget,
    BOOL bAfter=TRUE);

Параметры

pControlBar
[in] Указатель на область, вставляемую.

pTarget
[in] Указатель на панель до или после чего вставить панель.

bAfter
[in] Значение , если TRUE, pControlBar вставляется после pTarget. pControlBar Значение <a0/&a0>, если FALSEдо этого вставляется.

Возвращаемое значение

TRUE Если метод успешно регистрирует область, FALSE если панель уже зарегистрирована в диспетчере закреплений.

Замечания

Используйте этот метод, чтобы сообщить диспетчеру закреплений о области, указанной в pControlBar. Диспетчер закрепления выравнит эту область в соответствии с выравниванием и положением панели во внутреннем списке диспетчера док-станции.

CMDIFrameWndEx::IsFullScreen

Определяет, находится ли окно фрейма в полноэкранном режиме.

BOOL IsFullScreen() const;

Возвращаемое значение

TRUE Значение FALSE.

Замечания

Вы можете задать полноэкранный режим, вызвав CMDIFrameWndEx::EnableFullScreenMode метод.

CMDIFrameWndEx::IsMDITabbedGroup

Указывает, включена ли функция MDI Tabbed Groups.

BOOL IsMDITabbedGroup() const;

Возвращаемое значение

TRUE Значение FALSE.

Замечания

Чтобы определить, включена ли обычная вкладка MDI или функция "Группы с вкладками MDI", используйте CMDIFrameWndEx::AreMDITabs.

CMDIFrameWndEx::IsMemberOfMDITabGroup

Определяет, находится ли указанное окно с вкладками в списке окон, которые находятся в группах с вкладками MDI.

BOOL IsMemberOfMDITabGroup(CWnd* pWnd);

Параметры

pWnd
[in] Указатель на окно с вкладками.

Возвращаемое значение

TRUE Значение , если указанное окно с вкладками находится в списке вкладок, которые образуют группы с вкладками MDI. В противном случае — значение FALSE.

CMDIFrameWndEx::IsMenuBarAvailable

Определяет, имеет ли окно фрейма строку меню.

BOOL IsMenuBarAvailable() const;

Возвращаемое значение

TRUE Значение , если указатель на объект строки меню не NULLявляется; в противном случае FALSE.

CMDIFrameWndEx::IsPointNearDockSite

Определяет, находится ли указанная точка рядом с сайтом док-станции.

BOOL IsPointNearDockSite(
    CPoint point,
    DWORD& dwBarAlignment,
    BOOL& bOuterEdge) const;

Параметры

point
[in] Указанная точка в координатах экрана.

dwBarAlignment
[in] Указывает, какой край находится рядом. Возможные значения: CBRS_ALIGN_LEFT, CBRS_ALIGN_RIGHTи CBRS_ALIGN_TOPCBRS_ALIGN_BOTTOM

bOuterEdge
[in] TRUE Значение , если точка находится вблизи внешней границы док-сайта; FALSE иначе.

Возвращаемое значение

TRUE Значение , если точка находится рядом с сайтом док-станции; в противном случае FALSE.

Замечания

Точка находится рядом с сайтом док-станции, когда он находится в пределах конфиденциальности, заданной в диспетчере закреплений. Чувствительность по умолчанию составляет 15 пикселей.

CMDIFrameWndEx::IsPrintPreview

Определяет, находится ли окно фрейма в режиме предварительного просмотра.

BOOL IsPrintPreview();

Возвращаемое значение

TRUE Значение FALSEв противном случае .

Замечания

CMDIFrameWndEx::LoadFrame

Создает окно фрейма из сведений о ресурсах.

virtual BOOL LoadFrame(
    UINT nIDResource,
    DWORD dwDefaultStyle = WS_OVERLAPPEDWINDOW | FWS_ADDTOTITLE,
    CWnd* pParentWnd = NULL,
    CCreateContext* pContext = NULL);

Параметры

nIDResource
[in] Идентификатор общего ресурса, связанного с окном фрейма.

dwDefaultStyle
[in] Стиль окна фрейма.

pParentWnd
[in] Указатель на родительский элемент кадра.

pContext
[in] Указатель на структуруCCreateContext. Этот параметр может иметь значение NULL.

Возвращаемое значение

TRUE Значение , если метод выполнен успешно, в противном случае FALSE.

CMDIFrameWndEx::LoadMDIState

Загружает указанный макет групп с вкладками MDI и список ранее открытых документов.

virtual BOOL LoadMDIState(LPCTSTR lpszProfileName);

Параметры

lpszProfileName
[in] Указывает имя профиля.

Возвращаемое значение

TRUE Значение FALSE Значение , если загрузка не выполнена или данные не загружаются.

Замечания

Чтобы загрузить или сохранить состояние вкладок и групп MDI и списка открытых документов, сделайте следующее:

  • Вызов CMDIFrameWndEx::SaveMDIState при закрытии основного кадра
  • Вызов CMDIFrameWndEx::LoadMDIState при создании основного кадра. Рекомендуемое место для этого вызова перед первым отображением основного кадра. Добавьте до pMainFrame->LoadFrame (IDR_MAINFRAME);. добавления CWinAppEx::EnableLoadWindowPlacement CWinAppEx::ReloadWindowPlacement (FALSE); (pMainFrame); после вызова, чтобы LoadMDIState отобразить основной кадр в позиции, которая была сохранена в реестре.
  • Переопределите GetDocumentName в производном CMDIChildWndExклассе, если приложение отображает документы, которые не хранятся в виде файлов. Возвращаемая строка будет сохранена в реестре в качестве идентификатора документа. Базовая реализация CMDIChildWndEx::GetDocumentName возвращает значение, полученное из CDocument::GetPathName.
  • Переопределите CMDIFrameWndEx::CreateDocumentWindow , чтобы правильно создавать документы при их загрузке из реестра. Первый параметр — это строка, возвращаемая GetDocumentName .

Пример

В следующем примере показано, как LoadMDIState используется в примере VisualStudioDemo: приложение MFC Visual Studio.

// Parse command line for standard shell commands, DDE, file open
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);

if (cmdInfo.m_nShellCommand == CCommandLineInfo::FileNew)
{
   if (!pMainFrame->LoadMDIState(GetRegSectionPath()))
   {
      m_pStartDocTemplate->OpenDocumentFile(NULL);
   }
}
else
{
   // Dispatch commands specified on the command line
   if (!ProcessShellCommand(cmdInfo))
   {
      return FALSE;
   }
}

CMDIFrameWndEx::MDITabMoveToNextGroup

Перемещает активную вкладку из текущего активного окна табуляции в следующую или предыдущую группу табуляции.

void MDITabMoveToNextGroup(BOOL bNext=TRUE);

Параметры

bNext
[in] Если TRUE, переместите вкладку на следующую группу табуляции. Если FALSE, переместите его в предыдущую группу табуляции.

CMDIFrameWndEx::MDITabNewGroup

Создает новую группу табуляции с одним окном.

void MDITabNewGroup(BOOL bVert=TRUE);

Параметры

bVert
[in] Задает выравнивание новой группы. Если TRUEновая группа выровнена по вертикали. Если FALSEновая группа выровнена по горизонтали.

Замечания

Используйте эту функцию для создания нового окна табуляции (новая группа табуляции) и добавления первой вкладки в нее.

Пример

В следующем примере показано, как MDITabNewGroup используется в примере VisualStudioDemo: приложение MFC Visual Studio.

void CMainFrame::OnMdiNewHorzTabGroup()
{
   MDITabNewGroup(FALSE);
}

CMDIFrameWndEx::m_bCanConvertControlBarToMDIChild

Указывает, можно ли преобразовать панели закрепления в дочерние окна MDI.

BOOL m_bCanConvertControlBarToMDIChild;

Замечания

Указывает, можно ли преобразовать док-панели управления в дочерние окна MDI. Если этот флаг имеется TRUE, платформа автоматически обрабатывает преобразование, когда пользователь выбирает команду Tabbed Document . Флаг защищен, и этот параметр необходимо включить явным образом, установив m_bCanConvertControlBarToMDIChild в конструкторе CMDIFrameWndExпроизводного класса или переопределив CanConvertControlBarToMDIChildего.

Значение по умолчанию — FALSE.

Пример

В следующем примере показано, как m_bCanConvertControlBarToMDIChild используется в примере VisualStudioDemo: приложение MFC Visual Studio.

CMainFrame::CMainFrame()
{
   CMFCPopupMenu::SetForceShadow(TRUE);
   m_bCanConvertControlBarToMDIChild = TRUE;
}

CMDIFrameWndEx::m_bDisableSetRedraw

Включает или отключает оптимизацию перерисовки для дочерних окон MDI.

AFX_IMPORT_DATA static BOOL m_bDisableSetRedraw;

Замечания

Значение по умолчанию — TRUE.

Установите этот флаг, FALSE чтобы оптимизировать перерисовку дочерних элементов MDI. В этом случае платформа вызовет SetRedraw (FALSE) основной кадр при изменении активной вкладки приложения.

Этот флаг может вызвать нежелательные последствия (например, фоновые приложения, которые становятся видимыми). Поэтому рекомендуется изменить значение по умолчанию только в том случае, если во время активации вкладки MDI возникают заметные мерцания.

CMDIFrameWndEx::NegotiateBorderSpace

Согласовывает пространство границы в окне кадра во время активации OLE на месте.

virtual BOOL NegotiateBorderSpace(
    UINT nBorderCmd,
    LPRECT lpRectBorder);

Параметры

nBorderCmd
[in] Содержит одно из следующих значений из перечисления CFrameWnd::BorderCmd:

  • borderGet = 1
  • borderRequest = 2
  • borderSet = 3

lpRectBorder
[in, out] Указатель на RECT структуру или CRect объект класса , указывающий координаты границы.

Возвращаемое значение

Ненулевое значение, если метод выполнен успешно; в противном случае — 0.

Замечания

Этот метод представляет собой реализацию согласования пространства границ OLE.

CMDIFrameWndEx::OnCloseDockingPane

Вызывается платформой, когда пользователь нажимает кнопку "Закрыть " на панели закрепления.

virtual BOOL OnCloseDockingPane(CDockablePane* pWnd);

Параметры

pWnd
[in] Указатель на закрытую область.

Возвращаемое значение

TRUE Значение , если панель док-станции может быть закрыта. В противном случае — FALSE.

Замечания

Переопределите этот метод для скрытия панелей закрепления. Вернитесь FALSE , если вы хотите предотвратить скрытие панели закрепления.

Реализация по умолчанию ничего не делает и возвращает TRUE.

CMDIFrameWndEx::OnCloseMiniFrame

Вызывается платформой, когда пользователь нажимает кнопку "Закрыть" в окне с плавающей мини-рамкой.

virtual BOOL OnCloseMiniFrame(CPaneFrameWnd*);

Параметры

pWnd
[in] Указатель на окно мини-кадра, закрываемого.

Возвращаемое значение

TRUE Значение , если окно с плавающей мини-рамкой может быть закрыто. В противном случае — FALSE.

Замечания

Переопределите этот метод для скрытия плавающих мини-кадровых окон. Вернитесь FALSE , если вы хотите предотвратить скрытие плавающего окна мини-кадра.

Реализация по умолчанию ничего не делает и возвращает TRUE.

CMDIFrameWndEx::OnClosePopupMenu

Вызывается платформой, когда активное всплывающее меню обрабатывает WM_DESTROY сообщение.

virtual void OnClosePopupMenu(CMFCPopupMenu* pMenuPopup);

Параметры

pMenuPopup
[in] Указатель на всплывающее меню.

Замечания

Переопределите этот метод, если вы хотите обработать уведомления из CMFCPopupMenu объектов класса , принадлежащих окну фрейма MDI, когда эти объекты обрабатывают WM_DESTROY сообщения.

CMDIFrameWndEx::OnCmdMsg

Вызывается платформой для маршрутизации и отправки сообщений команд и обновления объектов пользовательского интерфейса команд.

virtual BOOL OnCmdMsg(
    UINT nID,
    int nCode,
    void* pExtra,
    AFX_CMDHANDLERINFO* pHandlerInfo);

Параметры

nID
[in] Идентификатор команды.

nCode
[in] Определяет код уведомления команды. Дополнительные сведения о значениях см nCode. в разделе CCmdTarget::OnCmdMsg.

pExtra
[in] Используется в соответствии со значением nCode. Дополнительные сведения о pExtra см. в разделе CCmdTarget::OnCmdMsg.

pHandlerInfo
[in, out] Как правило, этот параметр должен быть NULL. NULLOnCmdMsg В противном случае заполняет и pmf члены pTarget pHandlerInfo структуры вместо отправки команды.

Возвращаемое значение

Ненулевое значение, если сообщение обрабатывается; в противном случае — 0.

CMDIFrameWndEx::OnDrawMenuImage

Вызывается платформой при отрисовке изображения, связанного с пунктом меню.

virtual BOOL OnDrawMenuImage(
    CDC* pDC,
    const CMFCToolBarMenuButton* pMenuButton,
    const CRect& rectImage);

Параметры

pDC
[in] Указатель на контекст устройства.

pMenuButton
[in] Указатель на кнопку меню.

rectImage
[in] Ограничивающий прямоугольник изображения.

Возвращаемое значение

TRUE Если метод рисует изображение. Реализация по умолчанию возвращает значение FALSE.

Замечания

Переопределите этот метод, если вы хотите настроить отрисовку изображений для элементов меню, принадлежащих строке меню, принадлежащей производной объекту CMDIFrameWndEx. Реализация по умолчанию не выполняет никаких действий.

Вызывается платформой при CMFCPopupMenuобработке WM_PAINT сообщения.

virtual void OnDrawMenuLogo(
    CDC*,
    CMFCPopupMenu*,
    const CRect&);

Замечания

Переопределите эту функцию, чтобы отобразить логотип во всплывающем меню, которое принадлежит строке меню, принадлежащей производной объекту CMDIFrameWndEx. Реализация по умолчанию не выполняет никаких действий.

CMDIFrameWndEx::OnEraseMDIClientBackground

Вызывается платформой, когда окно кадров MDI обрабатывает WM_ERASEBKGND сообщение.

virtual BOOL OnEraseMDIClientBackground(CDC*);

Возвращаемое значение

TRUE Если приложение обрабатывает сообщение и удаляет фон.

Замечания

Переопределите эту функцию-член, если вы хотите обработать WM_ERASEBKGND сообщение в производном CMDIFrameWndExклассе.

CMDIFrameWndEx::OnMenuButtonToolHitTest

Вызывается платформой, когда CMFCToolBarButtonобъект обрабатывает WM_NCHITTEST сообщение.

virtual BOOL OnMenuButtonToolHitTest(
    CMFCToolBarButton* pButton,
    TOOLINFO* pTI);

Параметры

pButton
[in] Кнопка панели инструментов.

pTI
[out] Указатель на структуру TOOLINFO .

Возвращаемое значение

TRUE Если приложение заполняет pTI параметр. Реализация по умолчанию возвращает значение FALSE.

Замечания

Переопределите этот метод, если вы хотите предоставить сведения о определенных элементах меню подсказке. Реализация по умолчанию не выполняет никаких действий.

CMDIFrameWndEx::OnMoveMiniFrame

Вызывается платформой для перемещения окна мини-кадра.

virtual BOOL OnMoveMiniFrame(CWnd* pFrame);

Параметры

pFrame
[in] Указатель на окно мини-кадра.

Возвращаемое значение

TRUE Значение , если метод выполнен успешно, в противном случае FALSE.

CMDIFrameWndEx::OnSetPreviewMode

Задает режим предварительного просмотра основного окна фрейма приложения.

virtual void OnSetPreviewMode(
    BOOL bPreview,
    CPrintPreviewState* pState);

Параметры

bPreview
[in] Если TRUE, задает режим предварительного просмотра печати. Если FALSE, отменяет режим предварительного просмотра.

pState
[in] Указатель на структуру CPrintPreviewState .

Замечания

Этот метод переопределяет метод CFrameWnd::OnSetPreviewMode.

CMDIFrameWndEx::OnShowCustomizePane

Вызывается платформой при активации панели быстрого настройки.

virtual BOOL OnShowCustomizePane(
    CMFCPopupMenu* pMenuPane,
    UINT uiToolbarID);

Параметры

pMenuPane
[in] Указатель на панель быстрого настройки.

uiToolbarID
[in] Идентификатор элемента управления для настройки панели инструментов.

Возвращаемое значение

Этот метод всегда возвращает значение TRUE.

Замечания

Панель быстрого настройки — это меню, которое открывается, когда пользователь нажимает кнопку "Настроить" на панели инструментов.

Переопределите этот метод в производном классе, чтобы внести изменения в панель быстрого настройки.

CMDIFrameWndEx::OnShowMDITabContextMenu

Вызывается платформой перед отображением контекстного меню на одной из вкладок. Допустимо только для групп с вкладками MDI.

virtual BOOL OnShowMDITabContextMenu(
    CPoint point,
    DWORD dwAllowedItems,
    BOOL bTabDrop);

Параметры

point
[in] Расположение меню в координатах экрана.

dwAllowedItems
[in] Побитовая комбинация флагов ,|которая указывает, какие действия разрешены для текущей вкладки:

  • AFX_MDI_CREATE_VERT_GROUP — может создать группу вертикальных вкладок.
  • AFX_MDI_CREATE_HORZ_GROUP — может создать горизонтальную группу вкладок.
  • AFX_MDI_CAN_MOVE_PREV — может переместить вкладку в предыдущую группу вкладок.
  • AFX_MDI_CAN_MOVE_NEXT — может переместить вкладку в следующую группу вкладок.
  • AFX_MDI_CAN_BE_DOCKED — переключите документ с вкладками на закрепленное состояние (применимо только для документов с вкладками).

bTabDrop
[in] TRUE Чтобы отобразить меню в результате перетаскивания вкладки в другую группу табуляции. FALSE Чтобы отобразить меню в виде контекстного меню на активной вкладке в данный момент.

Возвращаемое значение

Переопределите этот метод в производном CMDIFrameWndExклассе.

Замечания

Если вы не обрабатываете OnShowMDITabContextMenu, контекстное меню не будет отображаться. Эта функция создается мастером приложений MFC при включении функции "Группы с вкладками MDI".

Пример

В следующем примере показано, как OnShowMDITabContextMenu используется в примере VisualStudioDemo: приложение MFC Visual Studio.

BOOL CMainFrame::OnShowMDITabContextMenu(CPoint point, DWORD dwAllowedItems, BOOL bDrop)
{
   CMenu menu;
   VERIFY(menu.LoadMenu(bDrop ? IDR_POPUP_DROP_MDITABS : IDR_POPUP_MDITABS));

   CMenu* pPopup = menu.GetSubMenu(0);
   ASSERT(pPopup != NULL);

   if ((dwAllowedItems & AFX_MDI_CREATE_HORZ_GROUP) == 0)
   {
      pPopup->DeleteMenu(ID_MDI_NEW_HORZ_TAB_GROUP, MF_BYCOMMAND);
   }

   if ((dwAllowedItems & AFX_MDI_CREATE_VERT_GROUP) == 0)
   {
      pPopup->DeleteMenu(ID_MDI_NEW_VERT_GROUP, MF_BYCOMMAND);
   }

   if ((dwAllowedItems & AFX_MDI_CAN_MOVE_NEXT) == 0)
   {
      pPopup->DeleteMenu(ID_MDI_MOVE_TO_NEXT_GROUP, MF_BYCOMMAND);
   }

   if ((dwAllowedItems & AFX_MDI_CAN_MOVE_PREV) == 0)
   {
      pPopup->DeleteMenu(ID_MDI_MOVE_TO_PREV_GROUP, MF_BYCOMMAND);
   }

   if ((dwAllowedItems & AFX_MDI_CAN_BE_DOCKED) == 0)
   {
      pPopup->DeleteMenu(ID_MDI_TABBED_DOCUMENT, MF_BYCOMMAND);
   }

   CMFCPopupMenu* pPopupMenu = new CMFCPopupMenu;
   pPopupMenu->SetAutoDestroy(FALSE);
   pPopupMenu->Create(this, point.x, point.y, pPopup->GetSafeHmenu());

   return TRUE;
}

CMDIFrameWndEx::OnShowPanes

Вызывается платформой для отображения или скрытия панелей.

virtual BOOL OnShowPanes(BOOL bShow);

Параметры

bShow
[in] TRUE для отображения панелей для FALSE скрытия панелей.

Возвращаемое значение

TRUE Значение , если состояние панелей изменяется в результате вызова этого метода, FALSE если панели уже находятся в состоянии, указанном в bShowпараметре. Например, если панели скрыты и bShow FALSEнаходятся, возвращается FALSEзначение.

Замечания

Реализация по умолчанию удаляет панель инструментов из окна кадра верхнего уровня.

Если CDockingManager::m_bHideDockingBarsInContainerMode имеет значение TRUE (по умолчанию), все панели закрепления будут скрыты.

CMDIFrameWndEx::OnShowPopupMenu

Вызывается платформой при открытии всплывающего меню.

virtual BOOL OnShowPopupMenu(CMFCPopupMenu*);

Возвращаемое значение

TRUE Если всплывающее меню должно отображаться. В противном случае — FALSE. Реализация по умолчанию возвращает значение TRUE.

Замечания

Переопределите этот метод, если вы хотите реализовать специальную обработку при активации всплывающего меню. Например, если вы хотите изменить обычные пункты меню на кнопки цветового меню, настроить слезоточивые панели и т. д.

Реализация по умолчанию не выполняет никаких действий.

CMDIFrameWndEx::OnSizeMDIClient

Вызывается платформой при изменении размера окна MDI клиента.

virtual void OnSizeMDIClient(
    const CRect& rectOld,
    const CRect& rectNew);

Параметры

rectOld
[in] Текущий размер окна клиента MDI.

rectNew
[in] Новый размер окна клиента MDI.

Замечания

CMDIFrameWndEx::OnTearOffMenu

Вызывается платформой при активации меню с перемещаемой панелью.

virtual BOOL OnTearOffMenu(
    CMFCPopupMenu* pMenuPopup,
    CPane* pBar);

Параметры

pMenuPopup
[in] Указатель на всплывающее меню.

pBar
[in] Указатель на слезоточивый бар.

Возвращаемое значение

TRUE чтобы разрешить всплывающее меню со слезоточивой панелью активироваться; в противном случае FALSE. Значение по умолчанию — TRUE.

Замечания

Переопределите эту функцию, если вы хотите реализовать специальную настройку для отключаемой панели. Реализация по умолчанию не выполняет никаких действий.

CMDIFrameWndEx::OnUpdateFrameMenu

Вызывается платформой для обновления меню кадров.

virtual void OnUpdateFrameMenu(HMENU hMenuAlt);

Параметры

hMenuAlt
[in] Дескриптор меню.

CMDIFrameWndEx::PaneFromPoint

Возвращает область док-станции, содержащую указанную точку.

CBasePane* PaneFromPoint(
    CPoint point,
    int nSensitivity,
    bool bExactBar,
    CRuntimeClass* pRTCBarType) const;

CBasePane* PaneFromPoint(
    CPoint point,
    int nSensitivity,
    DWORD& dwAlignment,
    CRuntimeClass* pRTCBarType) const;

Параметры

point
[in] Точка (в координатах экрана).

nSensitivity
[in] Прямоугольник окна каждой проверяемой панели увеличивается во всех направлениях по этому значению.

bExactBar
[in] nSensitivity Если TRUEпараметр игнорируется.

pRTCBarType
[in] NULLВ противном случае метод выполняет итерацию только на панелях указанного типа.

dwAlignment
[out] Если область найдена, этот параметр указывает, какая сторона области ближе всего к указанной точке.

Возвращаемое значение

Указатель на панель док-станции или NULL если элемент управления не содержит точку, указанную в pointпараметре.

Замечания

Вызов перенаправляется в CDockingManager класс. Дополнительные сведения см. в разделе CDockingManager::ControlBarFromPoint.

CMDIFrameWndEx::RecalcLayout

Вызывается платформой для перерасчета макета окна фрейма.

virtual void RecalcLayout(BOOL bNotify = TRUE);

Параметры

bNotify
[in] Определяет, получает ли активный элемент в окне фрейма уведомление об изменении макета. Значение , если TRUEэлемент уведомлен; в противном случае FALSE.

Замечания

Этот метод переопределяет CFrameWnd::RecalcLayout.

CMDIFrameWndEx::RemovePaneFromDockManager

Отменяет регистрацию области и удаляет ее из диспетчера док-станции.

void RemovePaneFromDockManager(
    CBasePane* pControlBar,
    BOOL bDestroy,
    BOOL bAdjustLayout,
    BOOL bAutoHide,
    CBasePane* pBarReplacement);

Параметры

pControlBar
[in] Указатель на область для удаления.

bDestroy
[in] TRUE для уничтожения удаленной панели. FALSE не уничтожать его.

bAdjustLayout
[in] TRUE для немедленной настройки макета док-станции. Если FALSEизменение будет происходить только в том случае, если событие перерасчета возникает по другим причинам (пользователь изменяет размер окна, перетаскивает основной кадр и т. д.).

bAutoHide
[in] TRUE чтобы удалить панель из списка панелей автохидентов. FALSE чтобы удалить панель из списка регулярных панелей.

pBarReplacement
[in] Указатель на панель, которая заменяет удаленную панель.

Замечания

Чтобы принять участие в макете док-станции, необходимо зарегистрировать каждую панель в диспетчере док-станции. Использование CMDIFrameWndEx::AddPane или CMDIFrameWndEx::InsertPane регистрация панелей.

Используйте этот метод, если панель больше не является частью макета закрепления окна фрейма.

CMDIFrameWndEx::SaveMDIState

Сохраняет текущий макет групп на вкладках MDI и список ранее открытых документов.

virtual BOOL SaveMDIState(LPCTSTR lpszProfileName);

Параметры

lpszProfileName
[in] Указывает имя профиля.

Возвращаемое значение

TRUE Значение FALSE Если сбой сохранения.

Замечания

Чтобы загрузить или сохранить состояние вкладок и групп MDI и списка открытых документов, сделайте следующее:

  • Вызов SaveMDIState при закрытии основного кадра
  • Вызов CMDIFrameWndEx::LoadMDIState при создании основного кадра. Рекомендуемое расположение для этого вызова перед первым отображением основного кадра.
  • Вызов перед вызовом CWinAppEx::EnableLoadWindowPlacement(FALSE);pMainFrame->LoadFrame (IDR_MAINFRAME);
  • Вызов CWinAppEx::ReloadWindowPlacement(pMainFrame) после LoadMDIState отображения основного кадра в позиции, которая была сохранена в реестре.
  • Переопределите GetDocumentName в производном CMDIChildWndExклассе, если приложение отображает документы, которые не хранятся в виде файлов. Возвращаемая строка будет сохранена в реестре в качестве идентификатора документа. Дополнительные сведения см. в разделе CMDIChildWndEx::GetDocumentName.
  • Переопределите CMDIFrameWndEx::CreateDocumentWindow , чтобы правильно создавать документы при их загрузке из реестра. Параметром CreateDocumentWindow является строка, GetDocumentName возвращаемая ранее.

Пример

В следующем примере показано, как SaveMDIState используется в примере VisualStudioDemo: приложение MFC Visual Studio.

void CMainFrame::OnClose()
{
   SaveMDIState(theApp.GetRegSectionPath());
   CMDIFrameWndEx::OnClose();
}

CMDIFrameWndEx::SetPrintPreviewFrame

Задает окно рамки предварительного просмотра печати.

void SetPrintPreviewFrame(CFrameWnd* pWnd);

Параметры

pWnd
[in] Указатель на окно рамки предварительного просмотра печати.

Замечания

CMDIFrameWndEx::SetupToolbarMenu

Изменяет объект панели инструментов, заменив фиктивные элементы пользовательскими элементами.

void SetupToolbarMenu(
    CMenu& menu,
    const UINT uiViewUserToolbarCmdFirst,
    const UINT uiViewUserToolbarCmdLast);

Параметры

menu
[in] Ссылка на CMenu объект класса , который необходимо изменить.

uiViewUserToolbarCmdFirst
[in] Указывает первую определяемую пользователем команду.

uiViewUserToolbarCmdLast
[in] Указывает последнюю определяемую пользователем команду.

CMDIFrameWndEx::ShowFullScreen

Переключает основной кадр из регулярного режима в полноэкранный режим.

void ShowFullScreen();

Замечания

CMDIFrameWndEx::ShowPane

Отображает или скрывает указанную область.

void ShowPane(
    CBasePane* pBar,
    BOOL bShow,
    BOOL bDelay,
    BOOL bActivate);

Параметры

pBar
[in] Указатель на область для отображения или скрытия.

bShow
[in] TRUE чтобы отобразить область. FALSE чтобы скрыть панель.

bDelay
[in] TRUE для задержки пересчета макета док-станции. FALSE для перерасчета макета док-станции немедленно.

bActivate
[in] TRUE для отображения области как активной. FALSE для отображения области как неактивной.

Замечания

Вызовите этот метод, чтобы отобразить или скрыть область. Не используйте ShowWindow для закрепления панелей.

Пример

В следующем примере показано, как ShowPane используется в примере VisualStudioDemo: приложение MFC Visual Studio.

void COutputList1::OnViewOutput()
{
   CBasePane* pParentBar = DYNAMIC_DOWNCAST(CBasePane, GetOwner());
   CFrameWndEx* pMainFrame = DYNAMIC_DOWNCAST(CFrameWndEx, GetTopLevelFrame());

   if (pMainFrame != NULL && pParentBar != NULL)
   {
      pMainFrame->SetFocus();
      pMainFrame->ShowPane(pParentBar, FALSE, FALSE, FALSE);
   }
}

CMDIFrameWndEx::ShowWindowsDialog

CMFCWindowsManagerDialog Создает поле и открывает его.

void ShowWindowsDialog();

Пример

В следующем примере показано, как ShowWindowsDialog используется в примере VisualStudioDemo: приложение MFC Visual Studio.

void CMainFrame::OnWindowManager()
{
   ShowWindowsDialog();
}

CMDIFrameWndEx::TabbedDocumentToControlBar

Преобразует указанный документ с вкладками в область док-станции.

virtual BOOL TabbedDocumentToControlBar(CMDIChildWndEx* pMDIChildWnd);

Параметры

pMDIChildWnd
Указатель на дочернее окно MDI, содержащее панель док-станции.

Возвращаемое значение

TRUE Если метод был успешным, FALSE при сбое.

Замечания

Используйте этот метод, чтобы преобразовать документ с вкладками в область закрепления. Документ с вкладками должен быть создан с помощью CMDIFrameWndEx::ControlBarToTabbedDocument.

Пример

В следующем примере показано, как TabbedDocumentToControlBar используется в примере VisualStudioDemo: приложение MFC Visual Studio.

void CMainFrame::OnMdiTabbedDocument()
{
   CMDIChildWndEx* pMDIChild = DYNAMIC_DOWNCAST(CMDIChildWndEx, MDIGetActive());
   if (pMDIChild == NULL)
   {
      ASSERT(FALSE);
      return;
   }

   TabbedDocumentToControlBar(pMDIChild);
}

CMDIFrameWndEx::UpdateCaption

Вызывается платформой для обновления заголовка рамки окна.

void UpdateCaption();

Замечания

CMDIFrameWndEx::UpdateMDITabbedBarsIcons

Задает значок для каждой панели вкладок MDI.

void UpdateMDITabbedBarsIcons();

CMDIFrameWndEx::WinHelp

Вызывается платформой для запуска приложения WinHelp или контекстной справки.

virtual void WinHelp(
    DWORD dwData,
    UINT nCmd = HELP_CONTEXT);

Параметры

dwData
[in] Указывает данные, необходимые для типа справки, указанной nCmd.

nCmd
[in] Указывает тип запрошенной справки. Дополнительные сведения о возможных значениях и о том, как они влияют на dwData параметр, см. в разделе WinHelp.

Замечания

Этот метод переопределяет метод CWnd::WinHelp.

См. также

Диаграмма иерархии
Классы
Класс CMDIFrameWnd
Класс CMDIChildWndEx