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


Класс COleIPFrameWndEx

Класс COleIPFrameWndEx реализует OLE-контейнер с поддержкой MFC. Необходимо создать встроенный класс окна фрейма для приложения, производный от класса COleIPFrameWndEx , вместо наследования его от класса COleIPFrameWnd. Дополнительные сведения см. в исходном коде, расположенном в папке VC\atlmfc\src\mfc установки Visual Studio.

Синтаксис

class COleIPFrameWndEx : public COleIPFrameWnd

Участники

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

Имя Описание
COleIPFrameWndEx::AddDockSite
COleIPFrameWndEx::AddPane
COleIPFrameWndEx::AdjustDockingLayout
COleIPFrameWndEx::D ockPane
COleIPFrameWndEx::D ockPaneLeftOf Закрепляет одну область слева от другой области.
COleIPFrameWndEx::EnableAutoHidePanes
COleIPFrameWndEx::EnableDocking
COleIPFrameWndEx::EnablePaneMenu
COleIPFrameWndEx::GetActivePopup Возвращает указатель на отображаемое в данный момент контекстное меню.
COleIPFrameWndEx::GetContainerFrameWindow
COleIPFrameWndEx::GetDefaultResId Возвращает заданный при загрузке окна идентификатор ресурса для окна фрейма.
COleIPFrameWndEx::GetDockFrame
COleIPFrameWndEx::GetDockingManager
COleIPFrameWndEx::GetMainFrame
COleIPFrameWndEx::GetMenuBar Возвращает указатель на объект строки меню, прикрепленное к окну фрейма.
COleIPFrameWndEx::GetPane
COleIPFrameWndEx::GetTearOffBars Возвращает список объектов области, которые находятся в состоянии перемещения.
COleIPFrameWndEx::GetToolbarButtonToolTipText Вызывается платформой перед отображением подсказки для кнопки.
COleIPFrameWndEx::InsertPane
COleIPFrameWndEx::IsMenuBarAvailable Определяет, что указатель на объект строки меню не имеет значение NULL.
COleIPFrameWndEx::IsPointNearDockSite
COleIPFrameWndEx::LoadFrame (Переопределяет COleIPFrameWnd::LoadFrame.)
COleIPFrameWndEx::OnCloseDockingPane
COleIPFrameWndEx::OnCloseMiniFrame
COleIPFrameWndEx::OnClosePopupMenu Вызывается платформой, когда активное всплывающее меню обрабатывает сообщение WM_DESTROY.
COleIPFrameWndEx::OnCmdMsg (Переопределяет CFrameWnd::OnCmdMsg.)
COleIPFrameWndEx::OnDrawMenuImage Вызывается платформой при отрисовке изображения, связанного с пунктом меню.
COleIPFrameWndEx::OnDrawMenuLogo Вызывается платформой при обработке сообщения WM_PAINT объектом CMFCPopupMenu.
COleIPFrameWndEx::OnMenuButtonToolHitTest Вызывается платформой при обработке сообщения WM_NCHITTEST объектом CMFCToolBarButton.
COleIPFrameWndEx::OnMoveMiniFrame
COleIPFrameWndEx::OnSetPreviewMode Вызов этой функции-члена переключает окно главного фрейма приложения в режим предварительного просмотра и из него. (Переопределяет CFrameWnd::OnSetPreviewMode.)
COleIPFrameWndEx::OnShowCustomizePane
COleIPFrameWndEx::OnShowPanes
COleIPFrameWndEx::OnShowPopupMenu Вызывается платформой при активации всплывающего меню.
COleIPFrameWndEx::OnTearOffMenu Вызывается платформой при активации меню с перемещаемой панелью.
COleIPFrameWndEx::P aneFromPoint
COleIPFrameWndEx::P reTranslateMessage (Переопределяет COleIPFrameWnd::PreTranslateMessage.)
COleIPFrameWndEx::RecalcLayout (Переопределяет COleIPFrameWnd::RecalcLayout.)
COleIPFrameWndEx::RemovePaneFromDockManager
COleIPFrameWndEx::SetDockState Применяет указанное состояние закрепления к областям, принадлежащим окну фрейма.
COleIPFrameWndEx::SetupToolbarMenu Изменяет объект панели инструментов путем поиска фиктивных элементов и замены их указанными элементами, определяемыми пользователем.
COleIPFrameWndEx::ShowPane
COleIPFrameWndEx::WinHelpA Вызывается платформой для запуска приложения WinHelp или контекстной справки.

Защищенные методы

Имя Описание
COleIPFrameWndEx::InitUserToobars Дает платформе команду инициализировать диапазон идентификаторов элементов управления, которые назначены панелям инструментов, определяемым пользователем.

Пример

В следующем примере кода показано, как создать подкласс экземпляра класса COleIPFrameWndEx и переопределить его методы. В примере демонстрируется переопределение методов OnDestory , RepositionFrame , RecalcLayout и CalcWindowRect . Этот фрагмент кода входит в состав примера Word Pad.

void CInPlaceFrame::OnDestroy()
{
   m_wndToolBar.DestroyWindow();
   m_wndFormatBar.DestroyWindow();
   COleIPFrameWndEx::OnDestroy();
}

void CInPlaceFrame::RepositionFrame(LPCRECT lpPosRect, LPCRECT lpClipRect)
{
   CRect rectNew = lpPosRect;
   rectNew.left -= HORZ_TEXTOFFSET;
   rectNew.top -= VERT_TEXTOFFSET;
   m_wndResizeBar.BringWindowToTop();
   COleIPFrameWndEx::RepositionFrame(&rectNew, lpClipRect);
   CWnd *pWnd = GetActiveView();
   if (pWnd != NULL)
      pWnd->BringWindowToTop();
   m_wndRulerBar.BringWindowToTop();
}

void CInPlaceFrame::RecalcLayout(BOOL bNotify)
{
   if (m_wndResizeBar.m_hWnd != NULL)
      m_wndResizeBar.BringWindowToTop();
   COleIPFrameWndEx::RecalcLayout(bNotify);
   CWnd *pWnd = GetActiveView();
   if (pWnd != NULL)
      pWnd->BringWindowToTop();
   if (m_wndRulerBar.m_hWnd != NULL)
      m_wndRulerBar.BringWindowToTop();

   // at least 12 pt region plus ruler if it exists
   CDisplayIC dc;
   CSize size;
   size.cy = MulDiv(12, dc.GetDeviceCaps(LOGPIXELSY), 72) + 1;
   size.cx = dc.GetDeviceCaps(LOGPIXELSX) / 4; // 1/4"
   size.cx += HORZ_TEXTOFFSET;                 //adjust for offset
   size.cy += VERT_TEXTOFFSET;
   if (m_wndRulerBar.m_hWnd != NULL && m_wndRulerBar.IsVisible())
   {
      CRect rect;
      m_wndRulerBar.GetWindowRect(&rect);
      size.cy += rect.Height();
   }
   m_wndResizeBar.SetMinSize(size);
}

void CInPlaceFrame::CalcWindowRect(LPRECT lpClientRect, UINT nAdjustType)
{
   COleIPFrameWndEx::CalcWindowRect(lpClientRect, nAdjustType);
}

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

CObject

CCmdTarget

CWnd

CFrameWnd

COleIPFrameWnd

COleIPFrameWndEx

Требования

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

COleIPFrameWndEx::AddDockSite

void AddDockSite();

Замечания

COleIPFrameWndEx::AddPane

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

Параметры

[in] pControlBar
[in] bTail

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

Замечания

COleIPFrameWndEx::AdjustDockingLayout

virtual void AdjustDockingLayout(HDWP hdwp = NULL);

Параметры

[in] hdwp

Замечания

COleIPFrameWndEx::D ockPane

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

Параметры

[in] pBar
[in] nDockBarID
[in] lpRect

Замечания

COleIPFrameWndEx::D ockPaneLeftOf

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

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

Параметры

pBar
[in] Указатель на панель для док-станции.

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

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

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

Замечания

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

COleIPFrameWndEx::EnableAutoHidePanes

BOOL EnableAutoHidePanes(DWORD dwDockStyle);

Параметры

[in] dwDockStyle

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

Замечания

COleIPFrameWndEx::EnableDocking

BOOL EnableDocking(DWORD dwDockStyle);

Параметры

[in] dwDockStyle

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

Замечания

COleIPFrameWndEx::EnablePaneMenu

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

Параметры

[in] bEnable
[in] uiCustomizeCmd
[in] strCustomizeLabel
[in] uiViewToolbarsMenuEntryID
[in] bContextMenuShowsToolbarsOnly
[in] bViewMenuShowsToolbarsOnly

Замечания

COleIPFrameWndEx::GetActivePopup

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

CMFCPopupMenu* GetActivePopup() const;

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

Указатель на активное всплывающее меню; в противном случае ЗНАЧЕНИЕ NULL.

Замечания

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

COleIPFrameWndEx::GetContainerFrameWindow

COleCntrFrameWndEx* GetContainerFrameWindow();

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

Замечания

COleIPFrameWndEx::GetDefaultResId

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

UINT GetDefaultResId() const;

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

Возвращает идентификатор ресурса меню или 0, если окно фрейма не имеет строки меню.

Замечания

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

COleIPFrameWndEx::GetDockFrame

CFrameWnd* GetDockFrame();

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

Замечания

COleIPFrameWndEx::GetDockingManager

CDockingManager* GetDockingManager();

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

Замечания

COleIPFrameWndEx::GetMainFrame

CFrameWnd* GetMainFrame();

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

Замечания

COleIPFrameWndEx::GetMenuBar

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

const CMFCMenuBar* GetMenuBar() const;

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

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

Замечания

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

COleIPFrameWndEx::GetPane

CBasePane* GetPane(UINT nID);

Параметры

[in] Nid

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

Замечания

COleIPFrameWndEx::GetTearOffBars

Возвращает список объектов области, которые находятся в состоянии перемещения.

const CObList& GetTearOffBars() const;

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

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

Замечания

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

COleIPFrameWndEx::GetToolbarButtonToolTipText

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

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

Параметры

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

strTTText
[in] Указатель на текст подсказки.

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

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

Замечания

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

COleIPFrameWndEx::InitUserToobars

Задает диапазон идентификаторов элементов управления, которые платформа назначает определяемым пользователем панелям инструментов.

void InitUserToolbars(
    LPCTSTR lpszRegEntry,
    UINT uiUserToolbarFirst,
    UINT uiUserToolbarLast)

Параметры

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

uiUserToolbarFirst
[in] Идентификатор элемента управления, назначенный первой пользовательской панели инструментов.

uiUserToolbarLast
[in] Идентификатор элемента управления, назначенный последней пользовательской панели инструментов.

Замечания

Эта функция позволяет инициализировать диапазон идентификаторов элементов управления для назначения панели инструментов, которые пользователи определяют динамически. Параметры uiUserToolbarFirst и uiUserToolbarLast определяют диапазон разрешенных идентификаторов элементов управления панели инструментов. Чтобы отключить создание определяемых пользователем панелей инструментов, задайте для uiUserToolbarFirst или uiUserToolbarLast значение -1.

COleIPFrameWndEx::InsertPane

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

Параметры

[in] pControlBar
[in] pTarget
[in] bAfter

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

Замечания

COleIPFrameWndEx::IsMenuBarAvailable

Определяет, является ли указатель на объект строки меню не NULL

BOOL IsMenuBarAvailable() const;

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

Возвращает ненулевое значение, если в окне фрейма есть строка меню; в противном случае возвращает значение 0.

Замечания

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

COleIPFrameWndEx::IsPointNearDockSite

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

Параметры

[in] Точки
[in] dwBarAlignment
[in] bOuterEdge

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

Замечания

COleIPFrameWndEx::LoadFrame

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

Параметры

[in] nIDResource
[in] dwDefaultStyle
[in] pParentWnd
[in] Pcontext

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

Замечания

COleIPFrameWndEx::OnCloseDockingPane

virtual BOOL OnCloseDockingPane(CDockablePane*);

Параметры

[входной] CDockablePane*

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

Замечания

COleIPFrameWndEx::OnCloseMiniFrame

virtual BOOL OnCloseMiniFrame(CPaneFrameWnd*);

Параметры

[входной] CPaneFrameWnd*

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

Замечания

COleIPFrameWndEx::OnClosePopupMenu

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

virtual void OnClosePopupMenu(CMFCPopupMenu* pMenuPopup);

Параметры

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

Замечания

Переопределите этот метод для получения уведомлений от CMFCPopupMenu объектов при обработке WM_DESTROY сообщений.

COleIPFrameWndEx::OnCmdMsg

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

Параметры

[in] Nid
[in] nCode
[in] pExtra
[in] pHandlerInfo

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

Замечания

COleIPFrameWndEx::OnDrawMenuImage

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

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

Параметры

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

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

rectImage
[in] Изображение, связанное с элементом меню.

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

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

Замечания

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

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

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

Параметры

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

pMenu
[in] Указатель на всплывающий объект меню.

rectLogo
[in] Указатель на логотип для отображения.

Замечания

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

COleIPFrameWndEx::OnMenuButtonToolHitTest

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

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

Параметры

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

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

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

Реализация по умолчанию ничего не делает и возвращает значение 0. Реализация должна возвращать ненулевое значение, если оно заполняет параметр pTI .

Замечания

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

COleIPFrameWndEx::OnMoveMiniFrame

virtual BOOL OnMoveMiniFrame(CWnd* pFrame);

Параметры

[in] pFrame

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

Замечания

COleIPFrameWndEx::OnSetPreviewMode

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

Параметры

[in] bPreview
[in] pState

Замечания

COleIPFrameWndEx::OnShowCustomizePane

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

Параметры

[in] pMenuPane
[in] uiToolbarID

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

Замечания

COleIPFrameWndEx::OnShowPanes

virtual BOOL OnShowPanes(BOOL bShow);

Параметры

[in] bShow

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

Замечания

COleIPFrameWndEx::OnShowPopupMenu

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

virtual BOOL OnShowPopupMenu(CMFCPopupMenu* pMenuPopup);

Параметры

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

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

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

Замечания

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

COleIPFrameWndEx::OnTearOffMenu

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

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

Параметры

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

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

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

TRUE, если требуется, чтобы платформа активизировала всплывающее меню; в противном случае ЗНАЧЕНИЕ FALSE. Значение по умолчанию — TRUE.

Замечания

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

COleIPFrameWndEx::P aneFromPoint

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

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

Параметры

[in] Точки
[in] nSensitivity
[in] bExactBar
[in] pRTCBarType
[in] dwAlignment

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

Замечания

COleIPFrameWndEx::P reTranslateMessage

virtual BOOL PreTranslateMessage(MSG* pMsg);

Параметры

[in] pMsg

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

Замечания

COleIPFrameWndEx::RecalcLayout

virtual void RecalcLayout(BOOL bNotify = TRUE);

Параметры

[in] bNotify

Замечания

COleIPFrameWndEx::RemovePaneFromDockManager

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

Параметры

[in] pControlBar
[in] bDesk
[in] bAdjustLayout
[in] bAutoHide
[in] pBarReplacement

Замечания

COleIPFrameWndEx::SetDockState

Применяет указанное состояние док-станции к панелям, принадлежащим окну фрейма.

void SetDockState(const CDockState& state);

Параметры

state
[in] Указывает состояние док-станции.

Замечания

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

COleIPFrameWndEx::SetupToolbarMenu

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

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

Параметры

меню
[in] Ссылка на объект CMenu для изменения.

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

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

Замечания

COleIPFrameWndEx::ShowPane

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

Параметры

[in] pBar
[in] bShow
[in] bDelay
[in] bActivate

Замечания

COleIPFrameWndEx::WinHelpA

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

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

Параметры

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

nCmd
[in] Указывает тип запрошенной справки. Список возможных значений и их влияние на параметр dwData см . в функции WinHelp в пакете SDK для Windows.

Замечания

См. также

Диаграмма иерархии
Классы
Класс CFrameWndEx
Класс CMDIFrameWndEx