CMFCEditBrowseCtrl Class
The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.
The latest version of this topic can be found at CMFCEditBrowseCtrl Class.
The CMFCEditBrowseCtrl
class supports the edit browse control, which is an editable text box that optionally contains a browse button. When the user clicks the browse button, the control performs a custom action or displays a standard dialog box that contains a file browser or a folder browser.
Syntax
class CMFCEditBrowseCtrl : public CEdit
Members
Public Constructors
Name | Description |
---|---|
CMFCEditBrowseCtrl::CMFCEditBrowseCtrl |
Default constructor. |
CMFCEditBrowseCtrl::~CMFCEditBrowseCtrl |
Destructor. |
Public Methods
Name | Description |
---|---|
CMFCEditBrowseCtrl::EnableBrowseButton | Enables or disables (hides) the browse button. |
CMFCEditBrowseCtrl::EnableFileBrowseButton | Enables the browse button and puts the edit browse control in file browse mode. |
CMFCEditBrowseCtrl::EnableFolderBrowseButton | Enables the browse button and puts the edit browse control in folder browse mode. |
CMFCEditBrowseCtrl::GetMode | Returns the current browse mode. |
CMFCEditBrowseCtrl::OnAfterUpdate | Called by the framework after the edit browse control is updated with the result of a browse action. |
CMFCEditBrowseCtrl::OnBrowse | Called by the framework after the user clicks the browse button. |
CMFCEditBrowseCtrl::OnChangeLayout | Redraws the current edit browse control. |
CMFCEditBrowseCtrl::OnDrawBrowseButton | Called by the framework to draw the browse button. |
CMFCEditBrowseCtrl::OnIllegalFileName | Called by the framework when an illegal file name was entered in the edit control. |
CMFCEditBrowseCtrl::PreTranslateMessage |
Translates window messages before they are dispatched to the TranslateMessage and DispatchMessage Windows functions. For syntax and more information, see CWnd::PreTranslateMessage. |
CMFCEditBrowseCtrl::SetBrowseButtonImage | Sets a custom image for the browse button. |
Remarks
Use an edit browse control to select a file or folder name. Optionally, use the control to perform a custom action such as to display a dialog box. You can display or not display the browse button, and you can apply a custom label or image on the button.
The browse mode of the edit browse control determines whether it displays a browse button and what action occurs when the button is clicked. For more information, see the GetMode method.
The CMFCEditBrowseCtrl
class supports the following modes.
custom mode
A custom action is performed when the user clicks the browse button. For example, you can display an application-specific dialog box.
file mode
A standard file selection dialog box is displayed when the user clicks the browse button.
folder mode
A standard folder selection dialog box is displayed when the user clicks the browse button.
How-To: Specify an Edit Browse Control
Perform the following steps to incorporate an edit browse control in your application:
If you want to implement a custom browse mode, derive your own class from the
CMFCEditBrowseCtrl
class and then override the CMFCEditBrowseCtrl::OnBrowse method. In the overridden method, execute a custom browse action and update the edit browse control with the result.Embed either the
CMFCEditBrowseCtrl
object or the derived edit browse control object into the parent window object.If you use the Class Wizard to create a dialog box, add an edit control (
CEdit
) to the dialog box form. Also, add a variable to access the control in your header file. In your header file, change the type of the variable fromCEdit
toCMFCEditBrowseCtrl
. The edit browse control will be created automatically. If you do not use the Class Wizard, add aCMFCEditBrowseCtrl
variable to your header file and then call itsCreate
method.If you add an edit browse control to a dialog box, use the ClassWizard tool to set up data exchange.
Call the EnableFolderBrowseButton, EnableFileBrowseButton, or EnableBrowseButton method to set the browse mode and display the browse button. Call the GetMode method to obtain the current browse mode.
To provide a custom image for the browse button, call the SetBrowseButtonImage method or override the OnDrawBrowseButton method.
To remove the browse button from the edit browse control, call the EnableBrowseButton method with the
bEnable
parameter set toFALSE
.
Inheritance Hierarchy
Example
The following example demonstrates how to use two methods in the CMFCEditBrowseCtrl
class: EnableFolderBrowseButton
and EnableFileBrowseButton
. This example is part of the New Controls sample.
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();
Requirements
Header: afxeditbrowsectrl.h
CMFCEditBrowseCtrl::EnableBrowseButton
Displays or does not display the browse button on the current edit browse control.
void EnableBrowseButton(
BOOL bEnable=TRUE,
LPCTSTR szLabel=_T("..."));
Parameters
bEnable
TRUE
to display the browse button; FALSE
not to display the browse button. The default value is TRUE
.
szLabel
The label that is displayed on the browse button. The default value is " ...".
Remarks
If the bEnable
parameter is TRUE
, implement a custom action to perform when the browse button is clicked. To implement a custom action, derive a class from the CMFCEditBrowseCtrl
class and then override its OnBrowse method.
If the bEnable
parameter is TRUE
, the browse mode of the control is BrowseMode_Default
; otherwise, the browse mode is BrowseMode_None
. For more information about browse modes, see the GetMode method.
CMFCEditBrowseCtrl::EnableFileBrowseButton
Displays the browse button on the current edit browse control and puts the control in file browse mode.
void EnableFileBrowseButton(
LPCTSTR lpszDefExt=NULL,
LPCTSTR lpszFilter=NULL,
DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT);
Parameters
lpszDefExt
Specifies the default file name extension that is used in the file selection dialog box. The default value is NULL
.
lpszFilter
Specifies the default filter string that is used in the file selection dialog box. The default value is NULL
.
dwFlags
Dialog box flags. The default value is a bitwise combination (OR) of OFN_HIDEREADONLY and OFN_OVERWRITEPROMPT.
Remarks
When the edit browse control is in file browse mode and the user clicks the browse button, the control displays the standard file selection dialog box.
For a full list of available flags, see OPENFILENAME structure.
CMFCEditBrowseCtrl::EnableFolderBrowseButton
Displays the browse button on the current edit browse control and puts the control in folder browse mode.
void EnableFolderBrowseButton();
Remarks
When the edit browse control is in folder browse mode and the user clicks the browse button, the control displays the standard folder selection dialog box.
CMFCEditBrowseCtrl::GetMode
Retrieves the browse mode of the current edit browse control.
CMFCEditBrowseCtrl::BrowseMode GetMode() const;
Return Value
One of the enumeration values that specifies the current mode of the edit browse control. The browse mode determines whether the framework displays the browse button and what action occurs when a user clicks that button.
The following table lists the possible return values.
Value | Description |
---|---|
BrowseMode_Default |
custom mode . A programmer-defined action is performed. |
BrowseMode_File |
file mode . The standard file browser dialog box is displayed. |
BrowseMode_Folder |
folder mode . The standard folder browser dialog box is displayed. |
BrowseMode_None |
The browse button is not displayed. |
Remarks
By default, a CMFCEditBrowseCtrl
object is initialized to BrowseMode_None
mode. Modify the browse mode with the CMFCEditBrowseCtrl::EnableBrowseButton, CMFCEditBrowseCtrl::EnableFileBrowseButton, and CMFCEditBrowseCtrl::EnableFolderBrowseButton methods.
CMFCEditBrowseCtrl::OnAfterUpdate
Called by the framework after the edit browse control is updated with the result of a browse action.
virtual void OnAfterUpdate();
Remarks
Override this method in a derived class to implement a custom action.
CMFCEditBrowseCtrl::OnBrowse
Called by the framework after the user clicks the browse button of the edit browse control.
virtual void OnBrowse();
Remarks
Use this method to execute custom code when the user clicks the browse button of the edit browse control. Derive your own class from the CMFCEditBrowseCtrl
class and override its OnBrowse
method. In that method, implement a custom browse action and optionally update the text box of the edit browse control. In your application, use the EnableBrowseButton method to put the edit browse control in custom browse mode.
CMFCEditBrowseCtrl::OnChangeLayout
Redraws the current edit browse control.
virtual void OnChangeLayout();
Remarks
The framework calls this method when the browse mode of the edit browse control changes. For more information, see CMFCEditBrowseCtrl::GetMode.
CMFCEditBrowseCtrl::OnDrawBrowseButton
Called by the framework to draw the browse button on the edit browse control.
virtual void OnDrawBrowseButton(
CDC* pDC,
CRect rect,
BOOL bIsButtonPressed,
BOOL bIsButtonHot);
Parameters
pDC
A pointer to a device context.
Rect
The bounding rectangle of the browse button.
bIsButtonPressed
TRUE
if the button is pressed; otherwise, FALSE
.
bIsButtonHot
TRUE
if the button is highlighted; otherwise, FALSE
.
Remarks
Override this function in a derived class to customize the appearance of the browse button.
CMFCEditBrowseCtrl::SetBrowseButtonImage
Sets a custom image on the browse button of the edit browse control.
void SetBrowseButtonImage(
HICON hIcon,
BOOL bAutoDestroy= TRUE);
void SetBrowseButtonImage(
HBITMAP hBitmap,
BOOL bAutoDestroy= TRUE);
void SetBrowseButtonImage(UINT uiBmpResId);
Parameters
hIcon
The handle of an icon.
hBitmap
The handle of a bitmap.
uiBmpResId
The resource ID of a bitmap.
bAutoDestroy
TRUE
to delete the specified icon or bitmap when this method exits; otherwise, FALSE
. The default value is TRUE
.
Remarks
Use this method to apply a custom image to the browse button. By default, the framework obtains a standard image when the edit browse control is in file browse or folder browse mode.
CMFCEditBrowseCtrl::OnIllegalFileName
Called by the framework when an illegal file name was entered in the edit control.
virtual BOOL OnIllegalFileName(CString& strFileName);
Parameters
strFileName
Specifies the illegal file name.
Return Value
Should return FALSE
if this file name can not be passed further to the file dialog. In this case, focus is set back to the edit control and the user should continue editing. The default implementation displays a message box telling the user about the illegal file name and returns FALSE
. You can override this method, correct the file name, and return TRUE
for further processing.