COleIPFrameWndEx 类

COleIPFrameWndEx 类实现支持 MFC 的 OLE 容器。 必须从 COleIPFrameWndEx 类派生应用程序的就地框架窗口类,而不是从 COleIPFrameWnd类派生。 有关详细信息,请参阅所安装的 Visual Studio 的 C\atlmfc\src\mfc 文件夹中的源代码。

语法

class COleIPFrameWndEx : public COleIPFrameWnd

成员

公共方法

名称 描述
COleIPFrameWndEx::AddDockSite
COleIPFrameWndEx::AddPane
COleIPFrameWndEx::AdjustDockingLayout
COleIPFrameWndEx::DockPane
COleIPFrameWndEx::DockPaneLeftOf 将一个窗格停靠到另一个窗格的左侧。
COleIPFrameWndEx::EnableAutoHidePanes
COleIPFrameWndEx::EnableDocking
COleIPFrameWndEx::EnablePaneMenu
COleIPFrameWndEx::GetActivePopup 返回一个指向当前显示的弹出菜单的指针。
COleIPFrameWndEx::GetContainerFrameWindow
COleIPFrameWndEx::GetDefaultResId 返回加载窗口时你指定的框架窗口的资源 ID。
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 CMFCPopupMenu对象处理 WM_PAINT 消息时由框架调用。
COleIPFrameWndEx::OnMenuButtonToolHitTest CMFCToolBarButton对象处理 WM_NCHITTEST 消息时由框架调用。
COleIPFrameWndEx::OnMoveMiniFrame
COleIPFrameWndEx::OnSetPreviewMode 调用该成员函数以设置应用程序主框架窗口打印预览模式的流入和流出。 (重写 CFrameWnd::OnSetPreviewMode。)
COleIPFrameWndEx::OnShowCustomizePane
COleIPFrameWndEx::OnShowPanes
COleIPFrameWndEx::OnShowPopupMenu 当激活弹出菜单时由框架调用。
COleIPFrameWndEx::OnTearOffMenu 当激活带有拖曳栏的菜单时由框架调用。
COleIPFrameWndEx::PaneFromPoint
COleIPFrameWndEx::PreTranslateMessage (替代 COleIPFrameWnd::PreTranslateMessage。)
COleIPFrameWndEx::RecalcLayout (替代 COleIPFrameWnd::RecalcLayout。)
COleIPFrameWndEx::RemovePaneFromDockManager
COleIPFrameWndEx::SetDockState 将指定的停靠状态应用于属于框架窗口的窗格。
COleIPFrameWndEx::SetupToolbarMenu 通过搜索虚拟项并将其替换为指定的用户定义项修改工具栏对象。
COleIPFrameWndEx::ShowPane
COleIPFrameWndEx::WinHelpA 由框架调用以启动 WinHelp 应用程序或上下文帮助。

受保护方法

名称 描述
COleIPFrameWndEx::InitUserToobars 告知框架初始化一系列分配给用户定义的工具栏的控件 ID。

示例

下面的示例演示如何将 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::DockPane

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

参数

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

注解

COleIPFrameWndEx::DockPaneLeftOf

将一个窗格停靠到另一个窗格的左侧。

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

返回在框架窗口加载菜单时指定的菜单资源 ID。

UINT GetDefaultResId() const;

返回值

返回菜单的资源 ID,如果框架窗口没有菜单栏,则返回 0。

备注

调用此函数以检索在框架窗口通过调用 COleIPFrameWndEx::LoadFrame 加载菜单资源时指定的资源 ID。

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

指定框架分配给用户定义的工具栏的一系列控件 ID。

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

参数

lpszRegEntry
[in] 库在其中存储用户工具栏设置的注册表项。

uiUserToolbarFirst
[in] 分配给第一个用户定义的工具栏的控制 ID。

uiUserToolbarLast
[in] 分配给最后一个用户定义的工具栏的控制 ID。

注解

使用此函数初始化一系列控件 ID,以便分配给用户动态定义的工具栏。 参数 uiUserToolbarFirst 和 uiUserToolbarLast 定义允许的工具栏控件 ID 的范围。 若要禁用用户定义工具栏的创建,请将 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] point
[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*);

参数

[in] CDockablePane*

返回值

备注

COleIPFrameWndEx::OnCloseMiniFrame

virtual BOOL OnCloseMiniFrame(CPaneFrameWnd*);

参数

[in] CPaneFrameWnd*

返回值

备注

COleIPFrameWndEx::OnClosePopupMenu

当活动的弹出菜单处理 WM_DESTROY 消息时由框架调用。

virtual void OnClosePopupMenu(CMFCPopupMenu* pMenuPopup);

参数

pMenuPopup
[in] 指向弹出菜单对象的指针。

注解

重写此方法以在处理 WM_DESTROY 消息时接收来自 CMFCPopupMenu 对象的通知。

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 派生对象拥有的菜单栏的菜单项自定义绘图,请重写此方法。

CMFCPopupMenu对象处理 WM_PAINT 消息时由框架调用。

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::PaneFromPoint

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

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

参数

[in] point
[in] nSensitivity
[in] bExactBar
[in] pRTCBarType
[in] dwAlignment

返回值

备注

COleIPFrameWndEx::PreTranslateMessage

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] bDestroy
[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 参数的相关信息,请参阅 Windows SDK 中的 WinHelp 函数

注解

另请参阅

层次结构图

CFrameWndEx 类
CMDIFrameWndEx 类