CMFCEditBrowseCtrl 類別
類別 CMFCEditBrowseCtrl
支援編輯流覽控制項,這是選擇性包含瀏覽按鈕的可編輯文字框。 當使用者按一下瀏覽按鈕時,控制項就會執行自訂動作或顯示包含檔案瀏覽器或資料夾瀏覽器的標準對話方塊。
語法
class CMFCEditBrowseCtrl : public CEdit
成員
公用建構函式
名稱 | 描述 |
---|---|
CMFCEditBrowseCtrl::CMFCEditBrowseCtrl |
預設建構函式。 |
CMFCEditBrowseCtrl::~CMFCEditBrowseCtrl |
解構函式。 |
公用方法
名稱 | 描述 |
---|---|
CMFCEditBrowseCtrl::EnableBrowseButton | 啟用或停用 [隱藏] 瀏覽按鈕。 |
CMFCEditBrowseCtrl::EnableFileBrowseButton | 啟用瀏覽按鈕,並將編輯流覽控制件 放在檔案流覽 模式中。 |
CMFCEditBrowseCtrl::EnableFolderBrowseButton | 啟用瀏覽按鈕,並將編輯流覽控制件 放在資料夾流覽 模式中。 |
CMFCEditBrowseCtrl::GetMode | 傳回目前的流覽模式。 |
CMFCEditBrowseCtrl::OnAfterUpdate | 在編輯流覽控制項以瀏覽動作的結果更新之後,由架構呼叫。 |
CMFCEditBrowseCtrl::OnBrowse | 使用者按覽按鈕之後,由架構呼叫。 |
CMFCEditBrowseCtrl::OnChangeLayout | 重新繪製目前的編輯流覽控制件。 |
CMFCEditBrowseCtrl::OnDrawBrowseButton | 由架構呼叫以繪製瀏覽按鈕。 |
CMFCEditBrowseCtrl::OnIllegalFileName | 在編輯控制項中輸入非法檔名時,由架構呼叫。 |
CMFCEditBrowseCtrl::PreTranslateMessage |
在分派至 TranslateMessage 和 DispatchMessage Windows 函式之前,翻譯視窗訊息。 如需語法和詳細資訊,請參閱 CWnd::P reTranslateMessage。 |
CMFCEditBrowseCtrl::SetBrowseButtonImage | 設定瀏覽按鈕的自定義影像。 |
備註
使用編輯流覽控制項來選取檔案或資料夾名稱。 或者,使用控件來執行自定義動作,例如顯示對話方塊。 您可以顯示或未顯示瀏覽按鈕,而且您可以在按鈕上套用自定義標籤或影像。
編輯 流覽控制元件的流覽模式 會決定它是否顯示瀏覽按鈕,以及按下按鈕時所發生的動作。 如需詳細資訊,請參閱 GetMode 方法。
類別 CMFCEditBrowseCtrl
支援下列模式。
自訂模式
當使用者按下瀏覽按鈕時,就會執行自定義動作。 例如,您可以顯示應用程式特定的對話方塊。
檔案模式
當使用者按下瀏覽按鈕時,會顯示標準檔案選取對話方塊。
資料夾模式
當使用者按下瀏覽按鈕時,會顯示標準資料夾選取對話方塊。
操作說明:指定編輯瀏覽控制件
執行下列步驟,將編輯瀏覽控制程式併入應用程式中:
如果您想要實作自定義流覽模式,請從
CMFCEditBrowseCtrl
類別衍生您自己的類別,然後覆寫 CMFCEditBrowseCtrl::OnBrowse 方法。 在覆寫的方法中,執行自定義瀏覽動作,並使用結果更新編輯流覽控制件。將
CMFCEditBrowseCtrl
物件或衍生的編輯流覽控制件物件內嵌至父視窗物件。如果您使用 [ 類別精靈 ] 建立對話框,請將編輯控件 (
CEdit
) 新增至對話框表單。 此外,新增變數以存取頭檔中的控件。 在您的標頭檔案中,將變數的類型從CEdit
變更為CMFCEditBrowseCtrl
。 會自動建立編輯流覽控制件。 如果您沒有使用 類別精靈,請將變數新增CMFCEditBrowseCtrl
至頭文件,然後呼叫其Create
方法。如果您將編輯瀏覽控制項新增至對話框,請使用 ClassWizard 工具來設定資料交換。
呼叫 EnableFolderBrowseButton、EnableFileBrowseButton 或 EnableBrowseButton 方法來設定流覽模式並顯示瀏覽按鈕。 呼叫 GetMode 方法以取得目前的流覽模式。
若要提供瀏覽按鈕的自定義影像,請呼叫 SetBrowseButtonImage 方法,或覆寫 OnDrawBrowseButton 方法。
若要從編輯流覽控件移除瀏覽按鈕,請呼叫 EnableBrowseButton 方法,並將 bEnable 參數設定為 FALSE。
繼承階層架構
範例
下列範例示範如何在 類別中使用 CMFCEditBrowseCtrl
兩種方法: EnableFolderBrowseButton
和 EnableFileBrowseButton
。 此範例是 New Controls 範例的一部分。
CMFCEditBrowseCtrl m_wndFolderEdit;
CMFCEditBrowseCtrl m_wndFileEdit;
// enable the browse button and put the control in file browse mode
m_wndFolderEdit.EnableFolderBrowseButton();
// enable the browse button and put the control in the folder browse mode
m_wndFileEdit.EnableFileBrowseButton();
需求
標頭: afxeditbrowsectrl.h
CMFCEditBrowseCtrl::EnableBrowseButton
顯示或未在目前的編輯流覽控制件上顯示瀏覽按鈕。
void EnableBrowseButton(
BOOL bEnable=TRUE,
LPCTSTR szLabel=_T("..."));
參數
bEnable
TRUE 可顯示瀏覽按鈕;FALSE 不顯示瀏覽按鈕。 預設值為 TRUE。
szLabel
顯示在瀏覽按鈕上的標籤。 默認值為 “ ...”。
備註
如果 bEnable 參數為 TRUE,請實作按一下瀏覽按鈕時要執行的自定義動作。 若要實作自定義動作,請從 CMFCEditBrowseCtrl
類別衍生類別,然後覆寫其 OnBrowse 方法。
如果 bEnable 參數為 TRUE,則控制件的流覽模式為 BrowseMode_Default
,否則流覽模式為 BrowseMode_None
。 如需流覽模式的詳細資訊,請參閱 GetMode 方法。
CMFCEditBrowseCtrl::EnableFileBrowseButton
在目前的編輯流覽控制項上顯示瀏覽按鈕,並將控制項 置於檔案流覽 模式。
void EnableFileBrowseButton(
LPCTSTR lpszDefExt=NULL,
LPCTSTR lpszFilter=NULL,
DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT);
參數
lpszDefExt
指定用於檔案選取對話方塊中的預設副檔名。 預設值是 NULL。
lpszFilter
指定用於檔案選取對話方塊中的預設篩選字串。 預設值是 NULL。
dwFlags
對話方塊旗標。 預設值是 OFN_HIDEREADONLY 和 OFN_OVERWRITEPROMPT 的位元組合 (OR)。
備註
當編輯瀏覽控制項處於檔案瀏覽模式時,若使用者按一下 [瀏覽] 按鈕,控制項將會顯示標準檔案選取對話方塊。
如需可用旗標的完整清單,請參閱 OPENFILENAME 結構。
CMFCEditBrowseCtrl::EnableFolderBrowseButton
顯示目前編輯流覽控制項上的瀏覽按鈕,並將控制項 置於資料夾流覽 模式。
void EnableFolderBrowseButton();
備註
當編輯流覽控制件處於資料夾流覽模式,且使用者按下瀏覽按鈕時,控件會顯示標準資料夾選取對話方塊。
CMFCEditBrowseCtrl::GetMode
擷取目前編輯流覽控制元件的流覽模式。
CMFCEditBrowseCtrl::BrowseMode GetMode() const;
傳回值
其中一個列舉值,指定編輯流覽控制元件的目前模式。 流覽模式會決定架構是否顯示流覽按鈕,以及當使用者按兩下該按鈕時,會發生什麼動作。
下表列出可能的傳回值。
值 | Description |
---|---|
BrowseMode_Default |
自訂模式。 執行程式設計人員定義的動作。 |
BrowseMode_File |
檔案模式。 會顯示標準檔案瀏覽器對話方塊。 |
BrowseMode_Folder |
資料夾模式。 [標準資料夾瀏覽器] 對話框隨即顯示。 |
BrowseMode_None |
不會顯示瀏覽按鈕。 |
備註
根據預設,物件 CMFCEditBrowseCtrl
會初始化為 BrowseMode_None
模式。 使用 CMFCEditBrowseCtrl::EnableBrowseButton、CMFCEditBrowseCtrl::EnableFileBrowseButton 和 CMFCEditBrowseCtrl::EnableFolderBrowseButton 方法修改流覽模式。
CMFCEditBrowseCtrl::OnAfterUpdate
在編輯流覽控制項以瀏覽動作的結果更新之後,由架構呼叫。
virtual void OnAfterUpdate();
備註
覆寫衍生類別中的這個方法,以實作自定義動作。
CMFCEditBrowseCtrl::OnBrowse
在使用者按下編輯流覽控制件的瀏覽按鈕之後,由架構呼叫。
virtual void OnBrowse();
備註
當使用者按下編輯流覽控制元件的瀏覽按鈕時,請使用這個方法來執行自訂程式代碼。 從 CMFCEditBrowseCtrl
類別衍生您自己的類別,並覆寫其 OnBrowse
方法。 在該方法中,實作自定義瀏覽動作,並選擇性地更新編輯流覽控制件的文字框。 在您的應用程式中,使用 EnableBrowseButton 方法,將編輯流覽控制項 置於自訂流覽 模式中。
CMFCEditBrowseCtrl::OnChangeLayout
重新繪製目前的編輯流覽控制件。
virtual void OnChangeLayout();
備註
當編輯流覽控制件的流覽模式變更時,架構會呼叫此方法。 如需詳細資訊,請參閱 CMFCEditBrowseCtrl::GetMode。
CMFCEditBrowseCtrl::OnDrawBrowseButton
由架構呼叫,以在編輯流覽控制件上繪製瀏覽按鈕。
virtual void OnDrawBrowseButton(
CDC* pDC,
CRect rect,
BOOL bIsButtonPressed,
BOOL bIsButtonHot);
參數
pDC
裝置內容的指標。
[週框]
流覽按鈕的周框。
bIsButtonPressed
如果按下按鈕,則為TRUE;否則為 FALSE。
bIsButtonHot
如果反白顯示按鈕,則為TRUE;否則為 FALSE。
備註
覆寫衍生類別中的這個函式,以自定義瀏覽按鈕的外觀。
CMFCEditBrowseCtrl::SetBrowseButtonImage
在編輯流覽控制件的瀏覽按鈕上設定自訂影像。
void SetBrowseButtonImage(
HICON hIcon,
BOOL bAutoDestroy= TRUE);
void SetBrowseButtonImage(
HBITMAP hBitmap,
BOOL bAutoDestroy= TRUE);
void SetBrowseButtonImage(UINT uiBmpResId);
參數
hIcon
圖示的句柄。
hBitmap
點陣圖的句柄。
uiBmpResId
點陣圖的資源標識碼。
bAutoDestroy
TRUE 表示在此方法結束時刪除指定的圖示或點陣圖;否則為 FALSE。 預設值為 TRUE。
備註
使用此方法可將自定義影像套用至瀏覽按鈕。 根據預設,當編輯流覽控制件處於 檔案瀏覽 或 資料夾流覽 模式時,架構會取得標準影像。
CMFCEditBrowseCtrl::OnIllegalFileName
在編輯控制項中輸入非法檔名時,由架構呼叫。
virtual BOOL OnIllegalFileName(CString& strFileName);
參數
strFileName
指定不合法的檔名。
傳回值
如果無法將這個檔名進一步傳遞至檔案對話框,則應該傳回 FALSE。 在此情況下,焦點會設定回編輯控件,而且使用者應該繼續編輯。 默認實作會顯示消息框,告知使用者非法檔名,並傳回 FALSE。 您可以覆寫此方法、更正檔名,並傳回 TRUE 以便進一步處理。