CMFCToolBarEditBoxButton 類別
包含編輯控制件的工具列按鈕( CEdit 類別)。
語法
class CMFCToolBarEditBoxButton : public CMFCToolBarButton
成員
公用建構函式
名稱 | 描述 |
---|---|
CMFCToolBarEditBoxButton::CMFCToolBarEditBoxButton | 建構 CMFCToolBarEditBoxButton 物件。 |
CMFCToolBarEditBoxButton::~CMFCToolBarEditBoxButton |
解構函式。 |
公用方法
備註
若要將編輯框按鈕新增至工具列,請遵循下列步驟:
為父工具列資源的按鈕保留假的資源 ID。
CMFCToolBarEditBoxButton
建構物件。在處理AFX_WM_RESETTOOLBAR訊息的訊息處理程式中,使用 CMFCToolBar::ReplaceButton,將虛擬按鈕取代為新的下拉式方塊按鈕。
如需詳細資訊,請參閱 逐步解說:將控件放在工具欄上。
範例
下例示範如何在 CMFCToolBarEditBoxButton
類別中使用各種方法。 這個範例示範如何在自定義期間指定使用者可以縮放按鈕、指定當使用者按鍵時顯示按鈕的框線、設定文字框控制項中的文字、指定應用程式中編輯框按鈕的平面樣式外觀,以及指定工具列編輯框控件的樣式。
CMFCToolBarEditBoxButton *boxButton = new CMFCToolBarEditBoxButton();
boxButton->CanBeStretched();
boxButton->HaveHotBorder();
boxButton->SetContents(_T("edit box button"));
boxButton->SetFlatMode(true);
boxButton->SetStyle(TBBS_PRESSED);
繼承階層架構
CMFCToolBarEditBoxButton
需求
標頭: afxtoolbareditboxbutton.h
CMFCToolBarEditBoxButton::CanBeStretched
指定使用者是否可以在自定義期間延展按鈕。
virtual BOOL CanBeStretched() const;
傳回值
這個方法會傳回 TRUE。
備註
根據預設,架構不允許使用者在自定義期間延展工具列按鈕。 這個方法可讓使用者在自定義期間延展編輯框工具列按鈕,以擴充基類實作 ( CMFCToolBarButton::CanBeStretched)。
CMFCToolBarEditBoxButton::CMFCToolBarEditBoxButton
建構 CMFCToolBarEditBoxButton 物件。
CMFCToolBarEditBoxButton(
UINT uiID,
int iImage,
DWORD dwStyle=ES_AUTOHSCROLL,
int iWidth=0);
參數
uiID
[in]指定控件識別碼。
iImage
[in]指定工具列影像以零起始的索引。 映像位於 CMFCToolBar 類別所維護的 CMFCToolBarImages 類別物件中。
dwStyle
[in]指定編輯控制項樣式。
iWidth
[in]以像素為單位指定編輯控制件的寬度。
備註
預設建構函式會將編輯控制項樣式設定為下列組合:
WS_CHILD |WS_VISIBLE |ES_AUTOHSCROLL
控件的預設寬度為150圖元。
CMFCToolBarEditBoxButton::CopyFrom
將另一個工具列按鈕的屬性複製到目前的按鈕。
virtual void CopyFrom(const CMFCToolBarButton& src);
參數
src
[in]要複製的來源按鈕參考。
備註
呼叫這個方法,將另一個工具列按鈕複製到這個工具列按鈕。 src 的類型必須為 CMFCToolBarEditBoxButton
。
CMFCToolBarEditBoxButton::CreateEdit
在按鈕中建立新的編輯控制件。
virtual CEdit* CreateEdit(
CWnd* pWndParent,
const CRect& rect);
參數
pWndParent
[in]指定編輯控制件的父視窗。 它不得為 NULL。
rect
[in]指定編輯控制元件的大小和位置。
傳回值
新建立之編輯控件的指標;如果控件的建立和附件失敗,則為 NULL。
備註
您會在兩個步驟中建構 CMFCToolBarEditBoxButton
物件。 先呼叫 建構函式,然後呼叫 CreateEdit
,這會建立 Windows 編輯控件並將它附加至 CMFCToolBarEditBoxButton
物件。
CMFCToolBarEditBoxButton::GetByCmd
擷取應用程式中具有指定命令標識碼的第一個 CMFCToolBarEditBoxButton
物件。
static CMFCToolBarEditBoxButton* __stdcall GetByCmd(UINT uiCmd);
參數
uiCmd
[in]要擷取之按鈕的命令標識碼。
傳回值
應用程式中具有指定命令標識元的第一個 CMFCToolBarEditBoxButton
物件,如果沒有這類物件,則為 NULL。
備註
這個共用公用程式方法是由 CMFCToolBarEditBoxButton::SetContentsAll 和 CMFCToolBarEditBoxButton::GetContentsAll 等方法來設定或取得具有指定命令標識符之第一個編輯框工具欄控件的文字。
CMFCToolBarEditBoxButton::GetContentsAll
擷取具有指定命令標識碼之第一個編輯框工具列控件的文字。
static CString __stdcall GetContentsAll(UINT uiCmd);
參數
uiCmd
[in]要從中擷取內容的按鈕命令標識碼。
傳回值
CString
物件,包含具有指定命令標識碼之第一個編輯框工具列控件的文字。
備註
如果沒有任何 CMFCToolBarEditBoxButton
物件具有指定的命令標識符,這個方法會傳回空字串。
CMFCToolBarEditBoxButton::GetContextMenuID
擷取與按鈕相關聯之快捷方式功能表的資源標識碼。
UINT GetContextMenuID();
傳回值
如果按鈕沒有相關聯的快捷方式功能表,則為與按鈕相關聯的資源標識碼,或 0。
備註
當使用者以滑鼠右鍵按鍵按鍵時,架構會使用資源識別碼來建立快捷方式選單。
CMFCToolBarEditBoxButton::GetEditBorder
擷取編輯方塊按鈕編輯部分的周框。
virtual void GetEditBorder(CRect& rectBorder);
參數
rectBorder
[out]接收周框之 對象的參考 CRect
。
備註
這個方法會擷取用戶端座標中編輯控件的周框。 它會以一個像素來展開每個方向的矩形大小。
CMFCVisualManager::OnDrawEditBorder 方法會在對象周圍CMFCToolBarEditBoxButton
繪製框線時呼叫此方法。
CMFCToolBarEditBoxButton::GetEditBox
傳回內嵌在按鈕中的 CEdit 類別 控制項指標。
CEdit* GetEditBox() const;
傳回值
按鈕包含之 CEdit 類別 控制件的指標。 如果尚未建立控件, CEdit
則為 NULL。
備註
您可以呼叫 CMFCToolBarEditBoxButton::CreateEdit 來建立CEdit
控件。
CMFCToolBarEditBoxButton::GetHwnd
擷取與工具列按鈕相關聯的視窗句柄。
virtual HWND GetHwnd();
傳回值
與按鈕相關聯的視窗句柄。
備註
這個方法會 傳回編輯方塊按鈕之編輯控件部分的視窗句柄,以覆寫 CMFCToolBarButton::GetHwnd 方法。
CMFCToolBarEditBoxButton::GetInvalidateRect
擷取必須重新繪製之按鈕工作區的區域。
virtual const CRect GetInvalidateRect() const;
傳回值
CRect
物件,指定必須重新繪製的區域。
備註
這個方法會藉由在文字捲標區域中包含 ,來擴充基類實 作 CMFCToolBarButton::GetInvalidateRect。
CMFCToolBarEditBoxButton::HaveHotBorder
決定當使用者按鍵時,是否顯示按鈕的框線。
virtual BOOL HaveHotBorder() const;
傳回值
如果按鈕在選取時顯示其框線,則為非零;否則為 0。
備註
如果控件可見,這個方法會傳回非零值, 藉此擴充基類實作 CMFCToolBarButton::HaveHotBorder。
CMFCToolBarEditBoxButton::IsFlatMode
判斷編輯框按鈕是否有一般樣式。
static BOOL __stdcall IsFlatMode();
傳回值
如果按鈕具有一般樣式,則為非零;否則為 0。
備註
根據預設,編輯框按鈕具有一般樣式。 使用 CMFCToolBarEditBoxButton::SetFlatMode 方法來變更應用程式的一般樣式外觀。
CMFCToolBarEditBoxButton::NotifyCommand
指定按鈕是否處理 WM_COMMAND 訊息。
virtual BOOL NotifyCommand(int iNotifyCode);
參數
iNotifyCode
[in]與命令相關聯的通知訊息。
傳回值
如果按鈕處理WM_COMMAND訊息,則為TRUE,或 FALSE 表示訊息必須由父工具列處理。
備註
當架構即將將WM_COMMAND訊息傳送至父視窗時,架構會呼叫這個方法。
這個方法會藉由處理EN_UPDATE通知來擴充基類實作 (CMFCToolBarButton::NotifyCommand)。 針對每個與這個物件具有相同命令標識符的編輯框,它會將其文字標籤設定為此物件的文字標籤。
CMFCToolBarEditBoxButton::OnAddToCustomizePage
當按鈕新增至 [ 自定義 ] 對話框時,由架構呼叫。
virtual void OnAddToCustomizePage();
備註
這個方法會從任何工具列中具有與這個物件相同命令標識符的編輯框控件複製屬性,以擴充基類實作 ( CMFCToolBarButton::OnAddToCustomizePage)。 如果沒有工具列具有與這個物件相同的命令標識符的編輯框控件,這個方法就不會執行任何動作。
如需自定義對話框的詳細資訊,請參閱 CMFCToolBarsCustomizeDialog 類別。
CMFCToolBarEditBoxButton::OnChangeParentWnd
當按鈕插入新的工具列時,由架構呼叫。
virtual void OnChangeParentWnd(CWnd* pWndParent);
參數
pWndParent
[in]新父視窗的指標。
備註
這個方法會藉由重新建立內部CEdit
對象來覆寫基類實作 (CMFCToolBarButton::OnChangeParentWnd)。
CMFCToolBarEditBoxButton::OnClick
當使用者按鍵時,由架構呼叫。
virtual BOOL OnClick(
CWnd* pWnd,
BOOL bDelay = TRUE);
參數
pWnd
[in] 未使用。
bDelay
[in] 未使用。
傳回值
如果按鈕處理單擊訊息,則為非零;否則為 0。
備註
如果可見內部CEdit
對象,這個方法會傳回非零值,以覆寫基類實作 (CMFCToolBarButton::OnClick)。
CMFCToolBarEditBoxButton::OnCtlColor
當父工具列處理WM_CTLCOLOR訊息時,由架構呼叫。
virtual HBRUSH OnCtlColor(
CDC* pDC,
UINT nCtlColor);
參數
pDC
[in]顯示按鈕的裝置內容。
nCtlColor
[in] 未使用。
傳回值
全域視窗筆刷的句柄。
備註
此方法會分別將所提供裝置內容的文字和背景色彩設定為全域文字和背景色彩,以覆寫基類實作 ( CMFCToolBarButton::OnCtlColor)。
如需應用程式可用之全域選項的詳細資訊,請參閱 結構AFX_GLOBAL_DATA。
CMFCToolBarEditBoxButton::OnGlobalFontsChanged
當全域字型變更時,由架構呼叫。
virtual void OnGlobalFontsChanged();
備註
這個方法會將控件的字型變更為全域字型,以擴充基類實作 ( CMFCToolBarButton::OnGlobalFontsChanged)。
如需應用程式可用之全域選項的詳細資訊,請參閱 結構AFX_GLOBAL_DATA。
CMFCToolBarEditBoxButton::OnMove
當父工具列移動時,由架構呼叫。
virtual void OnMove();
備註
此方法會藉由更新內部CEdit
物件的位置來覆寫預設類別實作 (CMFCToolBarButton::OnMove)
CMFCToolBarEditBoxButton::OnShow
當按鈕變成可見或看不見時,由架構呼叫。
virtual void OnShow(BOOL bShow);
參數
bShow
[in]指定按鈕是否可見。 如果此參數為TRUE,則會顯示按鈕。 否則,不會顯示按鈕。
備註
如果 bShow 為 TRUE,這個方法會藉由顯示按鈕來擴充基類實作 (CMFCToolBarButton::OnShow)。 否則,這個方法會隱藏按鈕。
CMFCToolBarEditBoxButton::OnSize
當父工具列變更其大小或位置,且此變更會導致按鈕變更大小時,由架構呼叫。
virtual void OnSize(int iSize);
參數
iSize
[in]按鈕的新寬度,以像素為單位。
備註
這個方法會藉由更新內部CEdit
物件的大小和位置,覆寫預設類別實作 CMFCToolBarButton::OnSize。
CMFCToolBarEditBoxButton::OnUpdateToolTip
當父工具列更新其工具提示文字時,由架構呼叫。
virtual BOOL OnUpdateToolTip(
CWnd* pWndParent,
int iButtonIndex,
CToolTipCtrl& wndToolTip,
CString& str);
參數
pWndParent
[in] 未使用。
iButtonIndex
[in] 未使用。
wndToolTip
[in]顯示工具提示文字的控制件。
str
[out] CString
物件,接收更新的工具提示文字。
傳回值
如果方法更新工具提示文字,則為非零;否則為 0。
備註
這個方法會藉由顯示與按鈕編輯部分相關聯的工具提示文字,來擴充基類實作 ( CMFCToolBarButton::OnUpdateToolTip)。 如果內部 CEdit
物件為 NULL,或物件的視窗句柄 CEdit
無法識別現有的視窗,則此方法不會執行任何動作並傳回 FALSE。
CMFCToolBarEditBoxButton::SetContents
設定文字框控制檔中的文字。
virtual void SetContents(const CString& sContents);
參數
sContents
[in]指定要設定的新文字。
CMFCToolBarEditBoxButton::SetContentsAll
尋找具有指定命令標識碼的 CMFCToolBarEditBoxButton 物件,並在其文字框中設定指定的文字。
static BOOL SetContentsAll(
UINT uiCmd,
const CString& strContents);
參數
uiCmd
[in]指定將變更文字之控件的命令標識碼。
strContents
[in]指定要設定的新文字。
傳回值
如果已設定文字,則為非零;如果具有指定命令標識碼的控件不存在,則為 CMFCToolBarEditBoxButton
0。
CMFCToolBarEditBoxButton::SetContextMenuID
指定與按鈕相關聯之快捷方式功能表的資源標識碼。
void SetContextMenuID(UINT uiResID);
參數
uiCmd
[in]快捷方式功能表的資源標識碼。
備註
當使用者以滑鼠右鍵按下工具列按鈕時,架構會使用資源識別碼來建立快捷方式功能表。
CMFCToolBarEditBoxButton::SetFlatMode
指定應用程式中編輯方塊按鈕的一般樣式外觀。
static void __stdcall SetFlatMode(BOOL bFlat = TRUE);
參數
bFlat
[in]編輯方塊按鈕的平面樣式。 如果此參數為TRUE,則會啟用一般樣式外觀;否則會停用一般樣式外觀。
備註
編輯方塊按鈕的預設平面樣式為TRUE。 使用 CMFCToolBarEditBoxButton::IsFlatMode 方法來擷取應用程式的一般樣式外觀。
CMFCToolBarEditBoxButton::SetStyle
指定工具列編輯框控制件的樣式。
virtual void SetStyle(UINT nStyle);
參數
nStyle
[in]要設定的新樣式。
備註
此方法會將 CMFCToolBarButton::m_nStyle 設定為 nStyle 當應用程式處於自定義模式時,也會停用文本框,並在應用程式不在自定義模式時啟用它(請參閱 CMFCToolBar::SetCustomizeMode 和 CMFCToolBar::IsCustomizeMode)。 如需有效樣式旗標的清單,請參閱 ToolBar控件樣式 。
另請參閱
階層架構圖表
類別
CMFCToolBarButton 類別
CEdit 類別
CMFCToolBar::ReplaceButton
逐步解說:將控制項放在工具列上