COleIPFrameWndEx选件类
COleIPFrameWndEx 选件类实现支持 MFC 的一个 OLE 容器。必须从 COleIPFrameWndEx 选件类派生应用程序的就地框架窗口选件类,而不是从派生该类从 COleIPFrameWnd选件类。
class COleIPFrameWndEx : public COleIPFrameWnd
成员
公共方法
名称 |
描述 |
---|---|
|
|
|
|
|
|
|
|
停靠在另一个窗格左侧的一个窗格。 |
|
|
|
|
|
|
|
返回指向当前显示的弹出菜单。 |
|
|
|
返回指定框架窗口的资源 ID 窗口时加载。 |
|
|
|
|
|
|
|
返回指向附加的菜单栏对象到框架窗口。 |
|
|
|
返回的窗格对象列表。撕掉状态。 |
|
调用由框架在按钮的工具提示之前显示。 |
|
|
|
确定与菜单栏对象的指针不是 NULL。 |
|
|
|
(重写 COleIPFrameWnd::LoadFrame。) |
|
|
|
|
|
调用由结构,当一个有效的弹出菜单操作 WM_DESTROY 消息。 |
|
(重写 CFrameWnd::OnCmdMsg。) |
|
调用由结构,在与菜单项绘制图像。 |
|
调用由结构,当 CMFCPopupMenu对象处理 WM_PAINT 消息。 |
|
调用由结构,当 CMFCToolBarButton对象处理 WM_NCHITTEST 消息。 |
|
|
|
调用该成员函数设置应用程序的主框架窗口到并在打印预览模式之外。(重写 CFrameWnd::OnSetPreviewMode。) |
|
|
|
|
|
调用由结构,当激活弹出菜单。 |
|
调用由结构,当有一个撕掉条活动的菜单。 |
|
|
|
(重写 COleIPFrameWnd::PreTranslateMessage。) |
|
(重写 COleIPFrameWnd::RecalcLayout。) |
|
|
|
适用于指定的停靠的状态属于框架窗口的窗格。 |
|
通过搜索虚假的项目和替换这些修改工具栏对象使用指定的用户定义的项。 |
|
|
受保护的方法
名称 |
描述 |
---|---|
调用框架初始化的控件 ID 的大小分配给用户定义的工具栏。 |
示例
下面的示例演示如何子类演示 COleIPFrameWndEx 选件类的实例和乘坐其方法。此示例演示如何超过乘驾 OnDestory 方法、RepositionFrame 方法、RecalcLayout 方法和 CalcWindowRect 方法。此代码段是 Word 填充示例的一部分。
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);
}
继承层次结构
要求
标头: afxoleipframewndex.h