COleIPFrameWndEx クラス
更新 : 2007 年 11 月
COleIPFrameWndEx クラスは、MFC Feature Pack をサポートする OLE コンテナを実装します。アプリケーションの埋め込み先フレーム ウィンドウ クラスを、COleIPFrameWnd クラスからではなく、COleIPFrameWndEx クラスから派生させる必要があります
class COleIPFrameWndEx : public COleIPFrameWnd
メンバ
パブリック メソッド
名前 |
説明 |
---|---|
|
|
|
|
|
|
|
|
ペインを別のペインの左側にドッキングします。 |
|
|
|
|
|
|
|
現在表示されているポップアップ メニューへのポインタを返します。 |
|
|
|
フレーム ウィンドウが読み込まれたときにユーザーが指定したウィンドウのリソース ID を返します。 |
|
|
|
|
|
|
|
フレーム ウィンドウに関連付けられているメニュー バー オブジェクトへのポインタを返します。 |
|
|
|
ティアオフ状態になっているペイン オブジェクトのリストを返します。 |
|
ボタンのツールヒントを表示する前に、フレームワークによって呼び出されます。 |
|
|
|
メニュー バー オブジェクトへのポインタが NULL でないかどうかを判定します。 |
|
|
|
(COleIPFrameWnd::LoadFrame をオーバーライドします。) |
|
|
|
|
|
アクティブなポップアップ メニューが WM_DESTROY メッセージを処理すると、フレームワークによって呼び出されます。 |
|
(CFrameWnd::OnCmdMsg をオーバーライドします。) |
|
メニュー項目に関連付けられたイメージが描画されるときに、フレームワークによって呼び出されます。 |
|
CMFCPopupMenu オブジェクトが WM_PAINT message メッセージを処理すると、フレームワークによって呼び出されます。 |
|
CMFCToolBarButton オブジェクトが WM_NCHITTEST メッセージを処理すると、フレームワークによって呼び出されます。 |
|
|
|
アプリケーションのメイン フレーム ウィンドウが印刷プレビュー モードに入るときと、抜けるときに呼び出します。(CFrameWnd::OnSetPreviewMode をオーバーライドします。) |
|
|
|
|
|
ポップアップ メニューがアクティブになると、フレームワークによって呼び出されます。 |
|
ティアオフ バーのあるメニューをアクティブにすると、フレームワークによって呼び出されます。 |
|
|
|
(COleIPFrameWnd::PreTranslateMessage をオーバーライドします。) |
|
(COleIPFrameWnd::RecalcLayout をオーバーライドします。) |
|
|
|
指定したドッキング状態を、フレーム ウィンドウに属するペインに適用します。 |
|
ダミー項目を検索し、そのダミー項目を、指定されたユーザー定義項目に置き換えることによって、ツール バー オブジェクトを変更します。 |
|
|
プロテクト メソッド
名前 |
説明 |
---|---|
ユーザー定義のツール バーに割り当てられているコントロール ID の範囲を初期化するよう、フレームワークで定義します。 |
使用例
COleIPFrameWndEx クラスのインスタンスをサブクラス化して、そのメソッドをオーバーライドする方法を次の例に示します。この例では、OnDestory メソッド、RepositionFrame メソッド、RecalcLayout メソッド、および CalcWindowRect メソッドをオーバーライドする方法を示しています。このコード スニペットは、「WordPad サンプル : MFC ワードパッド アプリケーション」の一部です。
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