COleIPFrameWndEx 類別
COleIPFrameWndEx
類別會實作支援 MFC 的 OLE 容器。 您必須從 COleIPFrameWndEx
類別衍生應用程式的就地框架視窗類別,而不是從 COleIPFrameWnd類別來衍生。
如需更多詳細資料,請參閱 Visual Studio 安裝位置下之 VC\atlmfc\src\mfc 資料夾中的原始程式碼。
語法
class COleIPFrameWndEx : public COleIPFrameWnd
成員
公用方法
受保護的方法
名稱 | 描述 |
---|---|
COleIPFrameWndEx::InitUserToobars | 告知架構初始化指派給使用者定義工具列的控制項識別碼範圍。 |
範例
下例示範如何建立 COleIPFrameWndEx
類別的執行個體子類別並覆寫其方法。 此範例示範如何覆寫 OnDestory
方法、 RepositionFrame
方法、 RecalcLayout
方法和 CalcWindowRect
方法。 此程式碼片段是 WordPad 範例的一部分。
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
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]快捷功能表物件的指標。
備註
覆寫此方法,以在處理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
擁有功能表欄的功能表項影像繪圖,請覆寫此方法。
COleIPFrameWndEx::OnDrawMenuLogo
架構在 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::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] 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 函式 。