CFrameWndEx
類別
實作 Windows 單一文件介面 (SDI) 重疊或快顯框架視窗的功能,並提供管理視窗的成員。 它會擴充 類別 CFrameWnd
。
語法
class CFrameWndEx : public CFrameWnd
成員
公用方法
範例
下列範例示範如何從 CFrameWndEx
類別繼承類別。 此範例說明子類別中的方法簽章,以及如何覆寫 OnShowPopupMenu
方法。 此程式碼片段是 WordPad 範例的一部分。
class CMainFrame : public CFrameWndEx
{
protected: // create from serialization only
CMainFrame();
DECLARE_DYNCREATE(CMainFrame)
// Attributes
public:
HICON m_hIconDoc;
HICON m_hIconText;
HICON m_hIconWrite;
HICON GetIcon(int nDocType);
// Operations
public:
void UpdateMRUFilesList()
{
m_wndTaskPane.UpdateMRUFilesList();
}
void OnChangeLook();
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CMainFrame)
public:
virtual void ActivateFrame(int nCmdShow = -1);
virtual BOOL LoadFrame(UINT nIDResource,
DWORD dwDefaultStyle = WS_OVERLAPPEDWINDOW | FWS_ADDTOTITLE,
CWnd *pParentWnd = NULL,
CCreateContext *pContext = NULL);
protected:
virtual BOOL PreCreateWindow(CREATESTRUCT &cs);
virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam);
//}}AFX_VIRTUAL
virtual BOOL OnShowPopupMenu(CMFCPopupMenu *pMenuPopup);
virtual BOOL OnTearOffMenu(CMFCPopupMenu *pMenuPopup, CPane *pBar);
protected:
void AdjustObjectSubmenu(CMFCPopupMenu *pMenuPopup);
void AdjustColorsMenu(CMFCPopupMenu *pMenuPopup, UINT uiId);
// Implementation
public:
virtual ~CMainFrame();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext &dc) const;
#endif
public:
CMFCMenuBar m_wndMenuBar;
CMFCToolBar m_wndToolBar;
CMFCStatusBar m_wndStatusBar;
CFormatBar m_wndFormatBar;
CRulerBar m_wndRulerBar;
CTaskPane m_wndTaskPane;
protected: // control bar embedded members
BOOL CreateMenuBar();
BOOL CreateToolBar();
BOOL CreateFormatBar();
BOOL CreateStatusBar();
BOOL CreateRulerBar();
BOOL CreateTaskPane();
// Generated message map functions
protected:
//{{AFX_MSG(CMainFrame)
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg void OnSysColorChange();
afx_msg void OnSize(UINT nType, int cx, int cy);
afx_msg void OnMove(int x, int y);
afx_msg void OnHelpFinder();
afx_msg void OnDropFiles(HDROP hDropInfo);
afx_msg void OnFontChange();
afx_msg BOOL OnQueryNewPalette();
afx_msg void OnPaletteChanged(CWnd *pFocusWnd);
afx_msg void OnDevModeChange(LPTSTR lpDeviceName);
afx_msg void OnViewCustomize();
afx_msg void OnViewFullScreen();
//}}AFX_MSG
afx_msg LRESULT OnBarState(WPARAM wParam, LPARAM lParam);
afx_msg LRESULT OnOpenMsg(WPARAM wParam, LPARAM lParam);
afx_msg LRESULT OnHelpCustomizeToolbars(WPARAM wp, LPARAM lp);
afx_msg LRESULT OnStartCustomize(WPARAM wp, LPARAM lp);
afx_msg LRESULT OnToolbarCreateNew(WPARAM, LPARAM);
afx_msg LRESULT OnGetDocumentColors(WPARAM, LPARAM);
afx_msg void OnDummy();
afx_msg void OnAskQuestion();
DECLARE_MESSAGE_MAP()
};
// CMainFrame is application-defined object of type CFrameWndEx
BOOL CMainFrame::OnShowPopupMenu(CMFCPopupMenu *pMenuPopup)
{
BOOL bRes = CFrameWndEx::OnShowPopupMenu(pMenuPopup);
if (pMenuPopup != NULL && !pMenuPopup->IsCustomizePane())
{
AdjustObjectSubmenu(pMenuPopup);
AdjustColorsMenu(pMenuPopup, ID_CHAR_COLOR);
}
return bRes;
}
繼承階層架構
需求
標頭: afxframewndex.h
CFrameWndEx::ActiveItemRecalcLayout
調整 OLE 用戶端專案的版面配置和框架的工作區。
void ActiveItemRecalcLayout();
備註
CFrameWndEx::AddPane
向停駐管理員註冊控制列。
BOOL AddPane(
CBasePane* pControlBar,
BOOL bTail=TRUE);
參數
pControlBar
[in]要註冊的控制列窗格。
bTail
[in] TRUE
如果您想要將控制列窗格新增至清單結尾; FALSE
否則。
傳回值
TRUE
如果已成功註冊控制列,則為 ; FALSE
否則。
CFrameWndEx::AdjustDockingLayout
重新計算停駐到框架視窗之所有窗格的配置。
virtual void AdjustDockingLayout(HDWP hdwp=NULL);
參數
hdwp
結構的句柄,其中包含多個視窗的位置。 .
備註
hdwp 結構是由 BeginDeferWindowPos
方法初始化。
CFrameWndEx::DelayUpdateFrameMenu
設定框架功能表,然後在命令處理閑置時更新它。
virtual void DelayUpdateFrameMenu(HMENU hMenuAlt);
參數
hMenuAlt
[in]處理替代功能表。
備註
CFrameWndEx::DockPane
將指定的窗格停駐到框架視窗。
void DockPane(
CBasePane* pBar,
UINT nDockBarID=0,
LPCRECT lpRect=NULL);
參數
pBar
[in]要停駐之控制列的指標。
nDockBarID
[in]要停駐之框架視窗側邊的標識碼。
lpRect
[in]常數 Rect
結構的指標,指定視窗的螢幕位置和大小。
備註
參數 nDockBarID
可以有下列其中一個值:
AFX_IDW_DOCKBAR_TOP
AFX_IDW_DOCKBAR_BOTTOM
AFX_IDW_DOCKBAR_LEFT
AFX_IDW_DOCKBAR_RIGHT
CFrameWndEx::DockPaneLeftOf
將指定的窗格停駐在另一個窗格的左邊。
BOOL DockPaneLeftOf(
CPane* pBar,
CPane* pLeftOf);
參數
pBar
[in]要停駐之窗格物件的指標。
pLeftOf
[in]窗格左側的指標,用來停駐所 pBar
指定的窗格。
傳回值
TRUE
如果 pBar
已成功停駐,則為 。 否則為 FALSE
。
備註
方法會採用 參數所 pBar
指定的工具列,並將它停駐在參數所 pLeftOf
指定工具列的左側。
CFrameWndEx::EnableAutoHidePanes
當窗格停駐到主框架視窗的指定端時,啟用窗格的自動隱藏模式。
BOOL EnableAutoHidePanes(DWORD dwDockStyle);
參數
dwDockStyle
[in]指定要停駐窗格之主框架視窗的一側。
傳回值
TRUE
如果列窗格已成功停駐至 所 dwDockStyle
指定的框架視窗側,則為 , FALSE
否則為 。
備註
dwDockStyle
可以有下列其中一個值:
CBRS_ALIGN_TOP
:允許將控制列停駐在框架視窗的工作區頂端。CBRS_ALIGN_BOTTOM
:允許將控制列停駐在框架視窗的工作區底部。CBRS_ALIGN_LEFT
:允許將控制列停駐在框架視窗工作區的左側。CBRS_ALIGN_RIGHT
:允許將控制列停駐在框架視窗工作區的右側。
CFrameWndEx::EnableDocking
啟用框架視窗窗格的停駐。
BOOL EnableDocking(DWORD dwDockStyle);
參數
dwDockStyle
[in]指定窗格列停駐的主框架視窗側邊。
傳回值
TRUE
如果列窗格可以成功停駐在指定的端,則為 。 否則為 FALSE
。
備註
參數 dwDockStyle
可以有下列其中一個值:
CBRS_ALIGN_TOP
CBRS_ALIGN_BOTTOM
CBRS_ALIGN_LEFT
CBRS_ALIGN_RIGHT
CFrameWndEx::EnableFullScreenMainMenu
以全螢幕模式顯示或隱藏主功能表。
void EnableFullScreenMainMenu(BOOL bEnableMenu);
參數
bEnableMenu
[in] TRUE
表示以全螢幕模式顯示主選單, FALSE
否則為 。
CFrameWndEx::EnableFullScreenMode
啟用框架視窗的全螢幕模式。
void EnableFullScreenMode(UINT uiFullScreenCmd);
參數
uiFullScreenCmd
[in]啟用和停用全螢幕模式之命令的標識碼。
備註
在全螢幕模式中,會隱藏所有停駐控制列、工具列和功能表,並調整使用中檢視的大小以佔用全螢幕。
當您啟用全螢幕模式時,您必須指定啟用或停用全螢幕模式之命令的識別碼。 您可以從主框架的 OnCreate
函式呼叫 EnableFullScreenMode
。 當框架視窗切換至全螢幕模式時,架構會建立具有指定命令標識碼的按鈕的浮動工具列。
如果您要在畫面上保留主選單, 請呼叫 CFrameWndEx::EnableFullScreenMainMenu
。
CFrameWndEx::EnableLoadDockState
啟用或停用停駐狀態的載入。
void EnableLoadDockState(BOOL bEnable=TRUE);
參數
bEnable
[in] TRUE
表示啟用停駐狀態的載入, FALSE
以停用停駐狀態的載入。
CFrameWndEx::EnablePaneMenu
啟用或停用窗格功能表的自動處理。
void EnablePaneMenu(
BOOL bEnable,
UINT uiCustomizeCmd,
const CString& strCustomizeLabel,
UINT uiViewToolbarsMenuEntryID,
BOOL bContextMenuShowsToolbarsOnly=FALSE,
BOOL bViewMenuShowsToolbarsOnly=FALSE);
參數
bEnable
[in] TRUE
啟用控制列快捷功能表的自動處理; FALSE
以停用控制列快捷功能表的自動處理。
uiCustomizeCmd
[in][自定義] 功能表項的命令標識碼。
strCustomizeLabel
[in]要針對 [自定義 ] 功能表項顯示的標籤
uiViewToolbarsMenuEntryID
[in]工具列選單項的標識碼,開啟控件列中的快捷功能表。
bContextMenuShowsToolbarsOnly
[in]如果 TRUE
為,則控件列操作功能表只會顯示工具列清單。 如果 FALSE
為 ,功能表會顯示工具列和停駐列的清單。
bViewMenuShowsToolbarsOnly
[in]如果 TRUE
為,則控件列功能表只會顯示工具列的清單。 如果 FALSE
為 ,功能表會顯示工具列和停駐列的清單。
CFrameWndEx::GetActivePopup
傳回目前顯示之快捷功能表的指標。
CMFCPopupMenu* GetActivePopup() const;
傳回值
目前顯示的快捷功能表指標;否則 NULL
為 。
CFrameWndEx::GetDefaultResId
傳回您在架構載入框架視窗時所指定的資源識別碼。
UINT GetDefaultResId() const;
傳回值
當使用者載入框架視窗時所指定的資源識別碼值。 如果框架視窗沒有功能表欄,則為零。
CFrameWndEx::GetDockingManager
CDockingManager
擷取框架視窗的 Class 物件。
CDockingManager* GetDockingManager();
傳回值
類別的CDockingManager
指標。
備註
框架視窗會建立並使用 CDockingManager
Class 物件來管理子視窗停駐。
CFrameWndEx::GetMenuBar
將指標傳回到附加在框架視窗的功能表列物件。
const CMFCMenuBar* GetMenuBar() const;
傳回值
附加至框架視窗之功能表欄物件的指標。
CFrameWndEx::GetPane
傳回具有指定標識碼之窗格的指標。
CBasePane* GetPane(UINT nID);
參數
nID
[in]控件識別碼。
傳回值
具有指定標識碼之窗格的指標。 NULL
如果不存在這類窗格,則為 。
CFrameWndEx::GetRibbonBar
擷取框架的功能區列控件。
CMFCRibbonBar* GetRibbonBar();
傳回值
框架之 CMFCRibbonBar
類別 的指標。
備註
CFrameWndEx::GetTearOffBars
傳回分割狀態的窗格物件清單。
const CObList& GetTearOffBars() const;
傳回值
對象的參考 CObList
,其中包含窗格對象處於卸除狀態的指標集合。
CFrameWndEx::GetToolbarButtonToolTipText
當應用程式顯示工具列按鈕的工具提示時,由架構呼叫。
virtual BOOL GetToolbarButtonToolTipText(
CMFCToolBarButton* pButton,
CString& strTTText);
參數
pButton
[in]工具列按鈕的指標。
strTTText
[in]要針對按鈕顯示的工具提示文字。
傳回值
TRUE
如果工具提示已顯示,則為 。 否則為 FALSE
。
備註
根據預設,此方法不會執行任何動作。 如果您想要顯示工具列按鈕的工具提示,請覆寫此方法。
CFrameWndEx::InsertPane
將窗格插入控制列清單中,並向停駐的管理員註冊此窗格。
BOOL InsertPane(
CBasePane* pControlBar,
CBasePane* pTarget,
BOOL bAfter=TRUE);
參數
pControlBar
要插入控制列清單,以及向停駐的管理員註冊的控制列指標。
pTarget
控制列指標,在其前後插入窗格。
bAfter
TRUE
如果您要在 之後pTarget
插入 pControlBar
,則為 ,FALSE
否則為 。
傳回值
TRUE
如果成功插入並註冊控制列,則為 , FALSE
否則為 。
備註
您必須使用 CDockingManager
類別 註冊每個控制列,才能參與停駐配置。
CFrameWndEx::IsFullScreen
判斷框架視窗是否處於全螢幕模式。
BOOL IsFullScreen() const;
傳回值
TRUE
如果框架視窗處於全螢幕模式,則為 ;否則 FALSE
為 。
備註
您可以呼叫 CFrameWndEx::EnableFullScreenMode
方法來設定全螢幕模式。
CFrameWndEx::IsMenuBarAvailable
判斷功能表欄物件的指標是否有效。
BOOL IsMenuBarAvailable() const;
傳回值
TRUE
如果框架視窗具有選單列,則為 ;否則 FALSE
為 。
CFrameWndEx::IsPointNearDockSite
判斷點是否位於對齊區域中。
BOOL IsPointNearDockSite(
CPoint point,
DWORD& dwBarAlignment,
BOOL& bOuterEdge) const;
參數
point
[in]點的位置。
dwBarAlignment
[out]對齊點的位置。 如需可能的值,請參閱一節中的表格。
bOuterEdge
[out] TRUE
如果點位於框架框線附近,則為 ; FALSE
如果點位於工作區中,則為 。
傳回值
TRUE
如果點位於對齊區域中,則為 ;否則為 FALSE
。
備註
下表列出 參數的 dwBarAlignment
可能值。
值 | Description |
---|---|
CBRS_ALIGN_TOP |
對齊頂端。 |
CBRS_ALIGN_RIGHT |
靠右對齊。 |
CBRS_ALIGN_BOTTOM |
對齊底部。 |
CBRS_ALIGN_LEFT |
靠左對齊。 |
CFrameWndEx::IsPrintPreview
判斷框架視窗是否處於列印預覽模式。
BOOL IsPrintPreview();
傳回值
TRUE
如果框架視窗處於列印預覽模式,則為 ;否則為 FALSE
。
備註
CFrameWndEx::LoadFrame
建構之後會呼叫這個方法,以建立框架視窗並載入其資源。
virtual BOOL LoadFrame(
UINT nIDResource,
DWORD dwDefaultStyle = WS_OVERLAPPEDWINDOW | FWS_ADDTOTITLE,
CWnd* pParentWnd = NULL,
CCreateContext* pContext = NULL);
參數
nIDResource
[in]用來載入所有框架資源的資源標識碼。
dwDefaultStyle
[in]預設框架視窗樣式。
pParentWnd
[in]框架之父視窗的指標。
pContext
[in] CCreateContext
架構在應用程式建立期間所使用的 Structure 類別指標。
傳回值
如果該方法成功則為 TRUE
;否則為 FALSE
。
備註
CFrameWndEx::NegotiateBorderSpace
實作 OLE 用戶端邊界交涉。
virtual BOOL NegotiateBorderSpace(
UINT nBorderCmd,
LPRECT lpRectBorder);
參數
nBorderCmd
[in]邊界交涉命令。 如需可能的值,請參閱一節。
lpRectBorder
[in, out]框線的維度。
傳回值
TRUE
如果必須重新計算設定,則為 ;否則為 FALSE
。
備註
下表列出 參數的 nBorderCmd
可能值。
borderGet
取得可用的 OLE 用戶端空間。
borderRequest
要求 OLE 用戶端空間。
borderSet
設定 OLE 用戶端空間。
CFrameWndEx::OnActivate
當使用者輸入切換至框架或離開框架時,架構會呼叫此方法。
afx_msg void OnActivate(
UINT nState,
CWnd* pWndOther,
BOOL bMinimized);
參數
nState
[in]框架為使用中或非使用中。 如需可能的值,請參閱一節中的表格。
pWndOther
[in]使用目前視窗切換使用者輸入的另一個視窗指標。
bMinimized
[in]框架的最小化狀態。 TRUE
如果畫面最小化,則為 ;否則為 FALSE
。
備註
下表列出 參數的 nState
可能值。
值 | Description |
---|---|
WA_ACTIVE |
框架是由滑鼠按一下以外的方法選取。 |
WA_CLICKACTIVE |
按兩下滑鼠即可選取框架。 |
WA_INACTIVE |
未選取框架。 |
CFrameWndEx::OnActivateApp
選取或取消選取應用程式時,由架構呼叫。
afx_msg void OnActivateApp(
BOOL bActive,
DWORD dwThreadID);
參數
bActive
[in] TRUE
如果已選取應用程式,則為 ; FALSE
如果未選取應用程式,則為 。
dwThreadID
[in]不使用此參數。
備註
CFrameWndEx::OnChangeVisualManager
當框架的變更需要變更可視化管理員時,由架構呼叫。
afx_msg LRESULT OnChangeVisualManager(
WPARAM wParam,
LPARAM lParam);
參數
wParam
[in]不使用此參數。
lParam
[in]不使用此參數。
傳回值
永遠傳回 0。
備註
CFrameWndEx::OnClose
架構會呼叫此方法以關閉框架。
afx_msg void OnClose();
備註
如果框架處於列印預覽模式,則會傳送 Windows 訊息以關閉列印預覽;否則,如果框架裝載 OLE 用戶端,則會停用用戶端。
CFrameWndEx::OnCloseDockingPane
當使用者按兩下 停駐窗格上的 [關閉 ] 按鈕時,由架構呼叫。
virtual BOOL OnCloseDockingPane(CDockablePane* pPane);
傳回值
TRUE
如果停駐列可以關閉,則為 。 否則為 FALSE
備註
默認實作不會執行任何動作。 如果您想要處理停駐列隱藏,請覆寫此方法。
CFrameWndEx::OnCloseMiniFrame
當使用者按兩下 浮動迷你框架視窗上的 [關閉 ] 按鈕時,由架構呼叫。
virtual BOOL OnCloseMiniFrame(CPaneFrameWnd* pWnd);
傳回值
TRUE
如果可以關閉浮動迷你框架視窗, 則為 。 否則為 FALSE
。
備註
預設實作不做任何動作。 如果您想要處理浮動迷你框架視窗的隱藏,請覆寫此方法。
CFrameWndEx::OnClosePopupMenu
當作用中的快捷功能表處理 WM_DESTROY
訊息時,由架構呼叫。
virtual void OnClosePopupMenu(CMFCPopupMenu* pMenuPopup);
參數
pMenuPopup
快捷功能表的指標。
備註
架構會在即將關閉視窗時傳送 WM_DESTROY
訊息。 如果您想要在關閉視窗時處理WM_DESTROY
架構所傳送的訊息時CMFCPopupMenu
,想要處理屬於框架視窗之物件的通知CMFCPopupMenu
,請覆寫這個方法。
CFrameWndEx::OnCmdMsg
分派命令訊息。
virtual BOOL OnCmdMsg(
UINT nID,
int nCode,
void* pExtra,
AFX_CMDHANDLERINFO* pHandlerInfo);
參數
nID
[in]命令標識碼。
nCode
[in]命令訊息類別。
pExtra
[in, out]命令物件的指標。
pHandlerInfo
[in, out]命令處理程序結構的指標。
傳回值
TRUE
如果已處理命令訊息,則為 ;否則為 FALSE
。
備註
CFrameWndEx::OnContextHelp
由架構呼叫以顯示內容相關說明。
afx_msg void OnContextHelp();
備註
CFrameWndEx::OnCreate
建立框架之後,由架構呼叫。
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
參數
lpCreateStruct
[in]新框架之 CREATESTRUCT
結構的 指標。
傳回值
0 以繼續建立框架;-1 以終結框架。
備註
CFrameWndEx::OnDestroy
框架終結時由架構呼叫。
afx_msg void OnDestroy();
備註
快速鍵數據表和所有視窗都會終結。
CFrameWndEx::OnDrawMenuImage
當應用程式繪製與功能表項相關聯的影像時,由架構呼叫。
virtual BOOL OnDrawMenuImage(
CDC* pDC,
const CMFCToolBarMenuButton* pMenuButton,
const CRect& rectImage);
參數
pDC
[in]裝置內容的指標。
pMenuButton
[in]要轉譯影像之功能表按鈕的指標。
rectImage
[in]結構的指標 Rect
,指定影像的螢幕位置和大小。
傳回值
TRUE
如果架構成功轉譯影像,則為 ; FALSE
否則。
備註
如果您想要自定義屬於衍生物件所 CFrameWndEx
擁有功能表欄之功能表項的影像轉譯,請覆寫這個方法。
CFrameWndEx::OnDrawMenuLogo
當物件處理WM_PAINT
訊息時CMFCPopupMenu
,由架構呼叫。
virtual void OnDrawMenuLogo(
CDC* pDC,
CMFCPopupMenu* pMenu,
const CRect& rectLogo);
參數
pDC
[in]裝置內容的指標。
pMenu
[in]功能表項的指標。
rectLogo
[in]常數 CRect
結構的參考,指定功能表標誌的螢幕位置和大小。
備註
如果您想要在屬於衍生物件所擁有的 CFrameWndEx
功能表欄的彈出視窗功能表上顯示標誌,請覆寫此函式。
CFrameWndEx::OnDWMCompositionChanged
當桌面視窗管理員 (DWM) 組合已啟用或停用時,由架構呼叫。
afx_msg LRESULT OnDWMCompositionChanged(
WPARAM wp,
LPARAM lp);
參數
wp
[in]不使用此參數。
lp
[in]不使用此參數。
傳回值
永遠傳回 0。
備註
CFrameWndEx::OnExitSizeMove
框架停止移動或重設大小時,由架構呼叫。
LRESULT OnExitSizeMove(
WPARAM wp,
LPARAM lp);
參數
wp
[in]不使用此參數。
lp
[in]不使用此參數。
傳回值
永遠傳回 0。
備註
CFrameWndEx::OnGetMinMaxInfo
當框架重設大小以設定窗口維度限制時,由架構呼叫。
afx_msg void OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI);
參數
lpMMI
[in]結構的 MINMAXINFO
指標。
備註
CFrameWndEx::OnIdleUpdateCmdUI
由架構呼叫,以在命令處理閑置時更新畫面顯示。
afx_msg LRESULT OnIdleUpdateCmdUI(
WPARAM wParam = 0,
LPARAM lParam = 0);
參數
wParam
[in]不使用此參數。
lParam
[in]不使用此參數。
傳回值
永遠傳回 0。
備註
CFrameWndEx::OnLButtonDown
當使用者按下滑鼠左鍵時,架構會呼叫此方法。
afx_msg void OnLButtonDown(
UINT nFlags,
CPoint point);
參數
nFlags
[in]指出使用者是否按下修飾詞鍵。 如需可能的值,請參閱 Notification 中的 WM_LBUTTONDOWN
參數wParam
。
point
[in]指定指標的 x 和 y 座標,相對於視窗左上角。
備註
CFrameWndEx::OnLButtonUp
當使用者放開滑鼠左鍵時,架構會呼叫此方法。
afx_msg void OnLButtonUp(
UINT nFlags,
CPoint point);
參數
nFlags
[in]指出使用者是否按下修飾詞鍵。 如需可能的值,請參閱 Notification 中的 WM_LBUTTONUP
參數wParam
。
point
[in]指定指標的 x 和 y 座標,相對於視窗左上角。
備註
CFrameWndEx::OnMenuButtonToolHitTest
當物件處理WM_NCHITTEST
訊息時CMFCToolBarButton
,由架構呼叫。
virtual BOOL OnMenuButtonToolHitTest(
CMFCToolBarButton* pButton,
TOOLINFO* pTI);
參數
pButton
[in]工具列按鈕的指標。
pTI
[out]工具信息結構的指標。
傳回值
TRUE
如果應用程式填滿 參數, 則為 pTI
。 否則為 FALSE
。
備註
如果您想要提供特定功能表項的工具提示資訊,請覆寫此方法。
CFrameWndEx::OnMenuChar
當功能表顯示時,由架構呼叫,且使用者按下未對應至命令的按鍵。
afx_msg LRESULT OnMenuChar(
UINT nChar,
UINT nFlags,
CMenu* pMenu);
參數
nChar
[in]按下按鍵的字元碼。
nFlags
[in] MF_POPUP
如果顯示的功能表是子功能表,則包含旗標;如果顯示的功能表是控件功能表,則 MF_SYSMENU
包含旗標。
pMenu
[in]功能表的指標。
傳回值
高序字必須是下列其中一個值。
值 | Description |
---|---|
0 |
架構應該忽略擊鍵。 |
1 |
架構應該會關閉功能表。 |
2 |
架構應該選取功能表中顯示的其中一個專案。 低序字包含要選取之命令的標識碼。 |
CFrameWndEx::OnMouseMove
架構會在指標移動時呼叫這個方法。
afx_msg void OnMouseMove(
UINT nFlags,
CPoint point);
參數
nFlags
[in]指出使用者是否按下修飾詞鍵。 如需可能的值,請參閱 Notification 中的 WM_MOUSEMOVE
參數wParam
。
point
[in]指定 x
指標相對於視窗左上角的 和 y
座標。
備註
CFrameWndEx::OnMoveMiniFrame
當窗格視窗移動時,由架構呼叫。
virtual BOOL OnMoveMiniFrame(CWnd* pFrame);
參數
pFrame
[in][類別] 窗格視窗的CPaneFrameWnd
指標。
傳回值
TRUE
如果窗格視窗未停駐,則為 ; FALSE
如果窗格視窗已停駐,則為 。
備註
CFrameWndEx::OnNcActivate
當框架的非工作區必須重新繪製以指出作用中狀態的變更時,由架構呼叫。
afx_msg BOOL OnNcActivate(BOOL bActive);
參數
bActive
[in] TRUE
表示繪製使用中的框架; FALSE
以繪製非使用中的框架。
傳回值
非零繼續進行默認處理;0 以防止非工作區停用。
備註
CFrameWndEx::OnNcCalcSize
必須計算工作區的大小和位置時,由架構呼叫。
afx_msg void OnNcCalcSize(
BOOL bCalcValidRects,
NCCALCSIZE_PARAMS FAR* lpncsp);
參數
bCalcValidRects
[in] TRUE
當應用程式必須指定有效的工作區時;否則為 FALSE
。
lpncsp
[in] NCCALCSIZE_PARAMS
包含框架維度變更之結構的指標。
備註
CFrameWndEx::OnNcHitTest
當指標移動或按下或放開滑鼠按鈕時,由架構呼叫。
afx_msg LRESULT OnNcHitTest(CPoint point);
參數
point
[in]螢幕座標中指標的位置。
傳回值
指標點擊列舉值。 如需可能值的清單,請參閱 WM_NCHITTEST
通知。
備註
CFrameWndEx::OnNcMouseMove
當指標在非工作區中移動時,由架構呼叫。
afx_msg void OnNcMouseMove(
UINT nHitTest,
CPoint point);
參數
nHitTest
[in]指標點擊列舉值。 如需可能值的清單,請參閱 WM_NCHITTEST
通知。
point
[in]螢幕座標中指標的位置。
備註
CFrameWndEx::OnNcPaint
必須繪製非工作區時,由架構呼叫。
afx_msg void OnNcPaint();
備註
CFrameWndEx::OnPaneCheck
由架構呼叫,以控制窗格的可見性。
afx_msg BOOL OnPaneCheck(UINT nID);
參數
nID
[in]窗格的控件標識碼。
傳回值
TRUE
如果已處理命令,則為 ; FALSE
以繼續進行命令處理。
備註
CFrameWndEx::OnPostPreviewFrame
當使用者變更列印預覽模式時,由架構呼叫。
afx_msg LRESULT OnPostPreviewFrame(
WPARAM wParam,
LPARAM lParam);
參數
wParam
[in]不使用此參數。
lParam
[in] TRUE
當框架處於列印預覽模式時; FALSE
列印預覽模式關閉時。
傳回值
永遠傳回 0。
備註
CFrameWndEx::OnPowerBroadcast
發生電源管理事件時,由架構呼叫。
afx_msg LRESULT OnPowerBroadcast(
WPARAM wp,
LPARAM lp);
參數
wp
[in]電源管理事件。 如需可能值的清單,請參閱 WM_POWERBROADCAST
訊息。
lp
[in]不使用此參數。
傳回值
呼叫預設視窗程序的結果。
備註
CFrameWndEx::OnSetMenu
由架構呼叫以取代框架視窗功能表。
afx_msg LRESULT OnSetMenu(
WPARAM wp,
LPARAM lp);
BOOL OnSetMenu(HMENU hmenu);
參數
wp
[in]新框架視窗功能表的句柄。
lp
[in]新視窗功能表的句柄。
hmenu
[in]新框架視窗功能表的句柄。
傳回值
LRESULT
是呼叫預設視窗程序的結果。
BOOL 是 TRUE
如果已處理事件,則為 ,否則為 FALSE
。
備註
CFrameWndEx::OnSetPreviewMode
由架構呼叫,以設定框架的列印預覽模式。
virtual void OnSetPreviewMode(
BOOL bPreview,
CPrintPreviewState* pState);
參數
bPreview
[in] TRUE
啟用列印預覽; FALSE
表示停用列印預覽。
pState
[in] CPrintPreviewState
框架狀態結構的指標。
備註
CFrameWndEx::OnSetText
由架構呼叫以設定視窗的文字。
afx_msg LRESULT OnSetText(
WPARAM wParam,
LPARAM lParam);
參數
wParam
[in]不使用此參數。
lParam
[in]視窗文字的指標。
傳回值
從對的呼叫 DefWindowProc
傳回值。
備註
CFrameWndEx::OnShowCustomizePane
當架構顯示 QuickCustomizePane
時,由架構呼叫。
virtual BOOL OnShowCustomizePane(
CMFCPopupMenu* pMenuPane,
UINT uiToolbarID);
參數
pMenuPane
[in]快速自定義窗格的指標。
uiToolbarID
[in]要自定義之工具列的控件標識碼。
傳回值
此方法一律會傳回 TRUE
。
備註
快速自定義功能表是當您按下工具列的自訂按鈕時出現的快捷功能表
CFrameWndEx::OnShowPanes
由架構呼叫以顯示或隱藏窗格。
virtual BOOL OnShowPanes(BOOL bShow);
參數
bShow
[in] TRUE
如果應用程式顯示窗格,則為 ; FALSE
否則。
傳回值
此方法一律會傳回 FALSE
。
備註
如果 是 且窗格為隱藏,或當 FALSE
是 TRUE
且窗格為 且顯示窗格時bShow
,則默認實作會顯示bShow
窗格。
如果 bShow
為 且窗格為可見,或當 FALSE
為 TRUE
且窗格隱藏時bShow
,預設實作會隱藏窗格。
覆寫衍生類別中的這個方法,以在架構顯示或隱藏窗格時執行自定義程序代碼。
CFrameWndEx::OnShowPopupMenu
當架構顯示快捷功能表時,由架構呼叫。
virtual BOOL OnShowPopupMenu(CMFCPopupMenu* pMenu);
參數
pMenu
[in]快捷功能表的指標。
傳回值
TRUE
如果顯示捷選單,則為 ;否則 FALSE
為 。
備註
在衍生類別中覆寫此方法,以在架構顯示快捷功能表時執行自定義程序代碼。 例如,覆寫此方法以變更快捷功能表中命令的背景色彩。
CFrameWndEx::OnSize
框架大小變更之後,由架構呼叫。
afx_msg void OnSize(
UINT nType,
int cx,
int cy);
參數
nType
[in]重設大小的類型。 如需可能的值,請參閱 WM_SIZE Notification 中的 參數wParam
。
cx
[in]以像素為單位的新框架寬度。
cy
[in]以像素為單位的新框架高度。
備註
CFrameWndEx::OnSizing
當用戶調整框架大小時,由架構呼叫。
afx_msg void OnSizing(
UINT fwSide,
LPRECT pRect);
參數
fwSide
[in]移動之框架的邊緣。 請參閱通知中的 WM_SIZING
參數wParam
。
pRect
[in, out] CRect
包含框架座標的 或 RECT
結構的指標。
備註
CFrameWndEx::OnSysColorChange
系統色彩變更時由架構呼叫。
void OnSysColorChange();
備註
CFrameWndEx::OnTearOffMenu
當應用程式顯示具有卸除列的功能表時,由架構呼叫。
virtual BOOL OnTearOffMenu(
CMFCPopupMenu* pMenuPopup,
CPane* pBar);
參數
pMenuPopup
[in]快捷功能表的指標。
pBar
[in]卸除列的指標。
傳回值
TRUE
如果已啟用含卸除列的快捷功能表,則為 ;否則 FALSE
為 。
備註
覆寫衍生類別中的這個方法,以在架構顯示控件列時執行自定義程序代碼。
預設實作不會執行任何動作,並傳 TRUE
回 。
CFrameWndEx::OnToolbarContextMenu
由架構呼叫以建置工具列彈出視窗。
afx_msg LRESULT OnToolbarContextMenu(
WPARAM wp,
LPARAM lp);
參數
wp
[in]不使用此參數。
lp
[in]不使用此參數。
傳回值
一律會傳回 1。
備註
CFrameWndEx::OnToolbarCreateNew
架構會呼叫此方法來建立新的工具列。
afx_msg LRESULT OnToolbarCreateNew(
WPARAM wp,
LPARAM lp);
參數
wp
[in]不使用此參數。
lp
[in]工具列標題列的文字指標。
傳回值
新工具列的指標;如果未 NULL
建立工具列, 則為 。
備註
CFrameWndEx::OnToolbarDelete
刪除工具列時由架構呼叫。
afx_msg LRESULT OnToolbarDelete(
WPARAM /* unused */,
LPARAM lp);
參數
unused
[in]不使用此參數。
lp
[in]工具列的指標。
傳回值
TRUE
如果已刪除工具列, 則為 ;否則為 FALSE
。
備註
CFrameWndEx::OnUpdateFrameMenu
由架構呼叫以設定框架功能表。
virtual void OnUpdateFrameMenu(HMENU hMenuAlt);
參數
hMenuAlt
[in]替代功能表的句柄。
備註
CFrameWndEx::OnUpdateFrameTitle
架構會呼叫此方法來更新框架視窗的標題列。
virtual void OnUpdateFrameTitle(BOOL bAddToTitle);
參數
bAddToTitle
[in] TRUE
將使用中文件標題新增至框架視窗標題列;否則 FALSE
為 。
備註
CFrameWndEx::OnUpdatePaneMenu
由架構呼叫以更新窗格功能表。
afx_msg void OnUpdatePaneMenu(CCmdUI* pCmdUI);
參數
pCmdUI
[in]窗格使用者介面物件的指標。
備註
CFrameWndEx::OnWindowPosChanged
當框架大小、位置或迭置順序因為呼叫視窗管理方法而變更時,由架構呼叫。
afx_msg void OnWindowPosChanged(WINDOWPOS FAR* lpwndpos);
參數
lpwndpos
[in] WINDOWPOS
包含新大小和位置之結構的指標。
備註
CFrameWndEx::PaneFromPoint
在每個窗格上搜尋指定的點。
CBasePane* PaneFromPoint(
CPoint point,
int nSensitivity,
bool bExactBar,
CRuntimeClass* pRTCBarType) const;
CBasePane* PaneFromPoint(
CPoint point,
int nSensitivity,
DWORD& dwAlignment,
CRuntimeClass* pRTCBarType) const;
參數
point
[in]要檢查之點的螢幕座標。
nSensitivity
[in]搜尋點時,依此數量展開每個控制列的周框矩形。
bExactBar
[in] TRUE
表示忽略 nSensitivity
參數,否則為 FALSE
。
pRTCBarType
[in]如果不是 NULL
,則方法只會搜尋指定類型的控制列。
dwAlignment
[out]如果成功,此參數會包含最接近指定點的控制列側邊。 否則,不會初始化此參數。
傳回值
控制項列的指標,如果point
NULL
找不到控制項,則為 。
備註
這個方法會搜尋您應用程式中的所有控制列是否有 point
。
使用 nSensitivity
來增加搜尋區域的大小。 使用 pRTCBarType
來限制方法所搜尋的控制列類型。
CFrameWndEx::PreTranslateMessage
在分派特定視窗訊息之前處理它們。
virtual BOOL PreTranslateMessage(MSG* pMsg);
參數
pMsg
[in]結構的指標 MSG
,其中包含要處理的訊息。
傳回值
如果訊息已處理且不應該分派,則為非零;如果訊息未處理且應該分派,則為 0。
備註
CFrameWndEx::RecalcLayout
調整框架及其子視窗的配置。
virtual void RecalcLayout(BOOL bNotify = TRUE);
參數
bNotify
[in]指定是否要通知 OLE 用戶端專案有關版面配置變更。
備註
當框架視窗的大小已變更或顯示或隱藏控制列時,就會呼叫這個方法。
CFrameWndEx::RemovePaneFromDockManager
取消註冊窗格,並將它從停駐管理員中移除。
void RemovePaneFromDockManager(
CBasePane* pControlBar,
BOOL bDestroy,
BOOL bAdjustLayout,
BOOL bAutoHide,
CBasePane* pBarReplacement);
參數
pControlBar
[in]要移除之控件列窗格的指標。
bDestroy
[in] TRUE
在移除控件列之後終結; FALSE
否則。
bAdjustLayout
[in] TRUE
調整停駐配置; FALSE
否則。
bAutoHide
[in] TRUE
如果控制列處於自動隱藏模式,則為 ; FALSE
否則。
pBarReplacement
[in]取代已移除窗格之窗格的指標。
備註
使用此方法可從框架視窗的停駐配置中移除控制列。
類別CDockingManager
會處理控制列的配置。 您必須使用 CFrameWndEx::AddPane
方法或 CFrameWndEx::InsertPane
方法,向停駐管理員註冊每個控制列。
CFrameWndEx::SetDockState
將停駐配置還原至登錄中儲存的停駐狀態。
void SetDockState(const CDockState& state);
參數
state
停駐狀態。 這個參數已忽略。
CFrameWndEx::SetPrintPreviewFrame
設定列印預覽框架視窗。
void SetPrintPreviewFrame(CFrameWnd* pWnd);
參數
pWnd
[in]列印預覽框架視窗的指標。
備註
CFrameWndEx::SetupToolbarMenu
將使用者定義的命令插入工具列功能表中。
void SetupToolbarMenu(
CMenu& menu,
const UINT uiViewUserToolbarCmdFirst,
const UINT uiViewUserToolbarCmdLast);
參數
menu
[in] CMenu
要修改的物件。
uiViewUserToolbarCmdFirst
[in]第一個使用者定義的命令。
uiViewUserToolbarCmdLast
[in]最後一個用戶定義的命令。
備註
架構會將使用者定義命令儲存在清單中。 使用 uiViewUserToolbarCmdFirst
和 uiViewUserToolbarCmdList
來指定要插入之命令的索引。
CFrameWndEx::ShowFullScreen
在全螢幕模式和一般模式之間切換主框架。
void ShowFullScreen();
CFrameWndEx::ShowPane
顯示或隱藏指定的窗格。
void ShowPane(
CBasePane* pBar,
BOOL bShow,
BOOL bDelay,
BOOL bActivate);
參數
pBar
[in]要顯示或隱藏之控件列的指標。
bShow
[in]如果 TRUE
為,則應用程式會顯示控制列。 否則,應用程式會隱藏控制列。
bDelay
[in]如果 TRUE
為 ,則會延遲調整停駐配置,直到架構呼叫 CFrameWndEx::AdjustDockingLayout
為止。 否則,請立即重新計算停駐配置。
bActivate
[in]如果 TRUE
為 ,請將控制列設為使用中。 否則,請以非使用中狀態顯示控制列。
CFrameWndEx::UpdateCaption
由架構呼叫以更新視窗框架標題。
void UpdateCaption();
備註
CFrameWndEx::WinHelp
叫用 WinHelp 應用程式或內容相關說明。
virtual void WinHelp(
DWORD dwData,
UINT nCmd = HELP_CONTEXT);
參數
dwData
相依於 nCmd
參數的數據。 如需可能值的清單,請參閱 WinHelp
。
nCmd
說明命令。 如需可能值的清單,請參閱 WinHelp
。