分享方式:


CMFCToolBarEditBoxButton 類別

包含編輯控制件的工具列按鈕( CEdit 類別)。

語法

class CMFCToolBarEditBoxButton : public CMFCToolBarButton

成員

公用建構函式

名稱 描述
CMFCToolBarEditBoxButton::CMFCToolBarEditBoxButton 建構 CMFCToolBarEditBoxButton 物件。
CMFCToolBarEditBoxButton::~CMFCToolBarEditBoxButton 解構函式。

公用方法

名稱 描述
CMFCToolBarEditBoxButton::CanBeStretched 指定使用者是否可以在自定義期間延展按鈕。 (覆寫 CMFCToolBarButton::CanBeStretched.)
CMFCToolBarEditBoxButton::CopyFrom 將另一個工具列按鈕的屬性複製到目前的按鈕。 (覆寫 CMFCToolBarButton::CopyFrom.)
CMFCToolBarEditBoxButton::CMFCToolBarEditBoxButton::CreateEdit 在按鈕中建立新的編輯控制件。
CMFCToolBarEditBoxButton::CreateObject 由建立此類別類型的動態執行個體架構所使用。
CMFCToolBarEditBoxButton::GetByCmd 擷取應用程式中具有指定命令標識碼的第一個 CMFCToolBarEditBoxButton 物件。
CMFCToolBarEditBoxButton::GetContentsAll 擷取具有指定命令標識碼之第一個編輯框工具列控件的文字。
CMFCToolBarEditBoxButton::GetContextMenuID 擷取與按鈕相關聯之快捷方式功能表的資源標識碼。
CMFCToolBarEditBoxButton::GetEditBorder 擷取編輯方塊按鈕編輯部分的周框。
CMFCToolBarEditBoxButton::CMFCToolBarEditBoxButton::GetEditBox 傳回內嵌在按鈕中的編輯控件指標。
CMFCToolBarEditBoxButton::GetHwnd 擷取與工具列按鈕相關聯的視窗句柄。 (覆寫 CMFCToolBarButton::GetHwnd.)
CMFCToolBarEditBoxButton::GetInvalidateRect 擷取必須重新繪製之按鈕工作區的區域。 (覆寫 CMFCToolBarButton::GetInvalidateRect.)
CMFCToolBarEditBoxButton::GetThisClass 由架構用來取得與這個類別類型相關聯之 CRuntimeClass 物件的指標。
CMFCToolBarEditBoxButton::HaveHotBorder 決定當使用者按鍵時,是否顯示按鈕的框線。 (覆寫 CMFCToolBarButton::HaveHotBorder.)
CMFCToolBarEditBoxButton::IsFlatMode 判斷編輯框按鈕是否有一般樣式。
CMFCToolBarEditBoxButton::NotifyCommand 指定按鈕是否處理 WM_COMMAND 訊息。 (覆寫 CMFCToolBarButton::NotifyCommand.)
CMFCToolBarEditBoxButton::OnAddToCustomizePage 當按鈕新增至 [ 自定義 ] 對話框時,由架構呼叫。 (覆寫 CMFCToolBarButton::OnAddToCustomizePage.)
CMFCToolBarEditBoxButton::OnCalculateSize 由架構呼叫,以計算指定裝置內容和停駐狀態的按鈕大小。 (覆寫 CMFCToolBarButton::OnCalculateSize.)
CMFCToolBarEditBoxButton::OnChangeParentWnd 當按鈕插入新的工具列時,由架構呼叫。 (覆寫 CMFCToolBarButton::OnChangeParentWnd.)
CMFCToolBarEditBoxButton::OnClick 當使用者按鍵時,由架構呼叫。 (覆寫 CMFCToolBarButton::OnClick.)
CMFCToolBarEditBoxButton::OnCtlColor 當父工具列處理WM_CTLCOLOR訊息時,由架構呼叫。 (覆寫 CMFCToolBarButton::OnCtlColor.)
CMFCToolBarEditBoxButton::OnDraw 由架構呼叫,以使用指定的樣式和選項繪製按鈕。 (覆寫 CMFCToolBarButton::OnDraw.)
CMFCToolBarEditBoxButton::OnDrawOnCustomizeList 由架構呼叫,以在 [自定義] 對話框的 [命令] 窗格中繪製按鈕。 (覆寫 CMFCToolBarButton::OnDrawOnCustomizeList.)
CMFCToolBarEditBoxButton::OnGlobalFontsChanged 當全域字型變更時,由架構呼叫。 (覆寫 CMFCToolBarButton::OnGlobalFontsChanged.)
CMFCToolBarEditBoxButton::OnMove 當父工具列移動時,由架構呼叫。 (覆寫 CMFCToolBarButton::OnMove.)
CMFCToolBarEditBoxButton::OnShow 當按鈕變成可見或看不見時,由架構呼叫。 (覆寫 CMFCToolBarButton::OnShow.)
CMFCToolBarEditBoxButton::OnSize 當父工具列變更其大小或位置,且此變更會導致按鈕變更大小時,由架構呼叫。 (覆寫 CMFCToolBarButton::OnSize.)
CMFCToolBarEditBoxButton::OnUpdateToolTip 當父工具列更新其工具提示文字時,由架構呼叫。 (覆寫 CMFCToolBarButton::OnUpdateToolTip.)
CMFCToolBarEditBoxButton::Serialize 從封存讀取此物件,或將它寫入封存。 (覆寫 CMFCToolBarButton::Serialize.)
CMFCToolBarEditBoxButton::SetACCData 使用工具列按鈕中的輔助功能數據填入提供的 CAccessibilityData 物件。 (覆寫 CMFCToolBarButton::SetACCData.)
CMFCToolBarEditBoxButton::CMFCToolBarEditBoxButton::SetContents 設定按鈕編輯控制件中的文字。
CMFCToolBarEditBoxButton::CMFCToolBarEditBoxButton::SetContentsAll 尋找具有指定命令識別碼的編輯控件按鈕,並在該按鈕的編輯控件中設定文字。
CMFCToolBarEditBoxButton::SetContextMenuID 指定與按鈕相關聯之快捷方式功能表的資源標識碼。
CMFCToolBarEditBoxButton::SetFlatMode 指定應用程式中編輯方塊按鈕的一般樣式外觀。
CMFCToolBarEditBoxButton::CMFCToolBarEditBoxButton::SetStyle 指定按鈕的樣式。 (覆寫 CMFCToolBarButton::SetStyle.)

備註

若要將編輯框按鈕新增至工具列,請遵循下列步驟:

  1. 為父工具列資源的按鈕保留假的資源 ID。

  2. CMFCToolBarEditBoxButton建構物件。

  3. 在處理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);

繼承階層架構

CObject

CMFCToolBarButton

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::SetCustomizeModeCMFCToolBar::IsCustomizeMode)。 如需有效樣式旗標的清單,請參閱 ToolBar控件樣式

另請參閱

階層架構圖表
類別
CMFCToolBarButton 類別
CEdit 類別
CMFCToolBar::ReplaceButton
逐步解說:將控制項放在工具列上