Classe CMFCEditBrowseCtrl
La CMFCEditBrowseCtrl
classe supporta il controllo Sfoglia di modifica, ovvero una casella di testo modificabile che contiene facoltativamente un pulsante sfoglia. Quando l'utente fa clic sul pulsante Sfoglia, il controllo esegue un'azione personalizzata o visualizza una finestra di dialogo standard che contiene un visualizzatore file o un visualizzatore cartelle.
Sintassi
class CMFCEditBrowseCtrl : public CEdit
Membri
Costruttori pubblici
Nome | Descrizione |
---|---|
CMFCEditBrowseCtrl::CMFCEditBrowseCtrl |
Costruttore predefinito. |
CMFCEditBrowseCtrl::~CMFCEditBrowseCtrl |
Distruttore. |
Metodi pubblici
Nome | Descrizione |
---|---|
CMFCEditBrowseCtrl::EnableBrowseButton | Abilita o disabilita (nasconde) il pulsante Sfoglia. |
CMFCEditBrowseCtrl::EnableFileBrowseButton | Abilita il pulsante Sfoglia e inserisce il controllo Modifica sfoglia in modalità di esplorazione file. |
CMFCEditBrowseCtrl::EnableFolderBrowseButton | Abilita il pulsante Sfoglia e inserisce il controllo Modifica sfoglia in modalità di esplorazione cartella. |
CMFCEditBrowseCtrl::GetMode | Restituisce la modalità di esplorazione corrente. |
CMFCEditBrowseCtrl::OnAfterUpdate | Chiamato dal framework dopo l'aggiornamento del controllo di esplorazione di modifica con il risultato di un'azione di esplorazione. |
CMFCEditBrowseCtrl::OnBrowse | Chiamato dal framework dopo che l'utente fa clic sul pulsante Sfoglia. |
CMFCEditBrowseCtrl::OnChangeLayout | Ridisegna il controllo sfoglia di modifica corrente. |
CMFCEditBrowseCtrl::OnDrawBrowseButton | Chiamato dal framework per disegnare il pulsante Sfoglia. |
CMFCEditBrowseCtrl::OnIllegalFileName | Chiamato dal framework quando è stato immesso un nome di file non valido nel controllo di modifica. |
CMFCEditBrowseCtrl::PreTranslateMessage |
Converte i messaggi della finestra prima che vengano inviati alle funzioni di Windows TranslateMessage e DispatchMessage . Per la sintassi e altre informazioni, vedere CWnd::P reTranslateMessage. |
CMFCEditBrowseCtrl::SetBrowseButtonImage | Imposta un'immagine personalizzata per il pulsante Sfoglia. |
Osservazioni:
Usare un controllo Sfoglia di modifica per selezionare un nome di file o cartella. Facoltativamente, utilizzare il controllo per eseguire un'azione personalizzata, ad esempio per visualizzare una finestra di dialogo. È possibile visualizzare o non visualizzare il pulsante Sfoglia ed è possibile applicare un'etichetta o un'immagine personalizzata sul pulsante.
La modalità di esplorazione del controllo Sfoglia di modifica determina se visualizza un pulsante Sfoglia e l'azione che si verifica quando si fa clic sul pulsante. Per altre informazioni, vedere il metodo GetMode .
La CMFCEditBrowseCtrl
classe supporta le modalità seguenti.
modalità personalizzata
Un'azione personalizzata viene eseguita quando l'utente fa clic sul pulsante Sfoglia. Ad esempio, è possibile visualizzare una finestra di dialogo specifica dell'applicazione.
modalità file
Quando l'utente fa clic sul pulsante Sfoglia, viene visualizzata una finestra di dialogo di selezione file standard.
modalità cartella
Quando l'utente fa clic sul pulsante Sfoglia, viene visualizzata una finestra di dialogo di selezione della cartella standard.
Procedura: Specificare un controllo Modifica sfoglia
Seguire questa procedura per incorporare un controllo di esplorazione di modifica nell'applicazione:
Se si vuole implementare una modalità di esplorazione personalizzata, derivare la propria classe dalla
CMFCEditBrowseCtrl
classe e quindi eseguire l'override del metodo CMFCEditBrowseCtrl::OnBrowse . Nel metodo sottoposto a override eseguire un'azione di esplorazione personalizzata e aggiornare il controllo di esplorazione di modifica con il risultato.Incorporare l'oggetto o l'oggetto
CMFCEditBrowseCtrl
controllo sfoglia derivato nell'oggetto finestra padre.Se si utilizza la Creazione guidata classi per creare una finestra di dialogo, aggiungere un controllo di modifica (
CEdit
) al modulo della finestra di dialogo. Aggiungere anche una variabile per accedere al controllo nel file di intestazione. Nel file di intestazione modificare il tipo della variabile daCEdit
aCMFCEditBrowseCtrl
. Il controllo di esplorazione di modifica verrà creato automaticamente. Se non si usa la Creazione guidata classi, aggiungere unaCMFCEditBrowseCtrl
variabile al file di intestazione e quindi chiamare ilCreate
relativo metodo.Se si aggiunge un controllo Sfoglia di modifica a una finestra di dialogo, utilizzare lo strumento ClassWizard per configurare lo scambio di dati.
Chiamare il metodo EnableFolderBrowseButton, EnableFileBrowseButton o EnableBrowseButton per impostare la modalità browse e visualizzare il pulsante Browse. Chiamare il metodo GetMode per ottenere la modalità di esplorazione corrente.
Per fornire un'immagine personalizzata per il pulsante Browse, chiamare il metodo SetBrowseButtonImage o eseguire l'override del metodo OnDrawBrowseButton .
Per rimuovere il pulsante Sfoglia dal controllo Sfoglia di modifica, chiamare il metodo EnableBrowseButton con il parametro bEnable impostato su FALSE.
Gerarchia di ereditarietà
Esempio
Nell'esempio seguente viene illustrato come usare due metodi nella CMFCEditBrowseCtrl
classe : EnableFolderBrowseButton
e EnableFileBrowseButton
. Questo esempio fa parte dell'esempio New Controls.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();
Requisiti
Intestazione: afxeditbrowsectrl.h
CMFCEditBrowseCtrl::EnableBrowseButton
Visualizza o non visualizza il pulsante Sfoglia nel controllo sfoglia di modifica corrente.
void EnableBrowseButton(
BOOL bEnable=TRUE,
LPCTSTR szLabel=_T("..."));
Parametri
bEnable
TRUE per visualizzare il pulsante Sfoglia; FALSE per non visualizzare il pulsante Sfoglia. Il valore predefinito è TRUE.
szLabel
Etichetta visualizzata sul pulsante Sfoglia. Il valore predefinito è " ...".
Osservazioni:
Se il parametro bEnable è TRUE, implementare un'azione personalizzata da eseguire quando si fa clic sul pulsante Sfoglia. Per implementare un'azione personalizzata, derivare una classe dalla classe e quindi eseguire l'override CMFCEditBrowseCtrl
del relativo metodo OnBrowse .
Se il parametro bEnable è TRUE, la modalità di esplorazione del controllo è BrowseMode_Default
; in caso contrario, la modalità di esplorazione è BrowseMode_None
. Per altre informazioni sulle modalità di esplorazione, vedere il metodo GetMode .
CMFCEditBrowseCtrl::EnableFileBrowseButton
Visualizza il pulsante Sfoglia nel controllo sfoglia di modifica corrente e imposta il controllo in modalità di esplorazione file.
void EnableFileBrowseButton(
LPCTSTR lpszDefExt=NULL,
LPCTSTR lpszFilter=NULL,
DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT);
Parametri
lpszDefExt
Specifica l'estensione di file predefinita usata nella finestra di dialogo di selezione file. Il valore predefinito è NULL.
lpszFilter
Specifica la stringa di filtro predefinita usata nella finestra di dialogo di selezione file. Il valore predefinito è NULL.
dwFlags
Flag di finestra di dialogo. Il valore predefinito è una combinazione bit per bit (OR) di OFN_HIDEREADONLY e OFN_OVERWRITEPROMPT.
Osservazioni:
Quando il controllo di modifica con pulsante sfoglia è in modalità di visualizzazione di file e l'utente fa clic sul pulsante Sfoglia, il controllo visualizza la finestra di dialogo di selezione file standard.
Per un elenco completo dei flag disponibili, vedere Struttura OPENFILENAME.
CMFCEditBrowseCtrl::EnableFolderBrowseButton
Consente di visualizzare il pulsante Sfoglia nel controllo sfoglia di modifica corrente e di attivare la modalità di esplorazione della cartella.
void EnableFolderBrowseButton();
Osservazioni:
Quando il controllo Sfoglia di modifica è in modalità di esplorazione cartelle e l'utente fa clic sul pulsante Sfoglia, il controllo visualizza la finestra di dialogo di selezione della cartella standard.
CMFCEditBrowseCtrl::GetMode
Recupera la modalità di esplorazione del controllo sfoglia di modifica corrente.
CMFCEditBrowseCtrl::BrowseMode GetMode() const;
Valore restituito
Uno dei valori di enumerazione che specifica la modalità corrente del controllo di esplorazione di modifica. La modalità di esplorazione determina se il framework visualizza il pulsante Sfoglia e l'azione che si verifica quando un utente fa clic su tale pulsante.
Nella tabella seguente sono elencati i valori restituiti possibili.
valore | Descrizione |
---|---|
BrowseMode_Default |
modalità personalizzata. Viene eseguita un'azione definita dal programmatore. |
BrowseMode_File |
modalità file. Viene visualizzata la finestra di dialogo standard del browser di file. |
BrowseMode_Folder |
modalità cartella. Viene visualizzata la finestra di dialogo del browser delle cartelle standard. |
BrowseMode_None |
Il pulsante Sfoglia non viene visualizzato. |
Osservazioni:
Per impostazione predefinita, un CMFCEditBrowseCtrl
oggetto viene inizializzato in BrowseMode_None
modalità . Modificare la modalità di esplorazione con i metodi CMFCEditBrowseCtrl::EnableBrowseButton, CMFCEditBrowseCtrl::EnableFileBrowseButton e CMFCEditBrowseCtrl::EnableFolderBrowseButton .
CMFCEditBrowseCtrl::OnAfterUpdate
Chiamato dal framework dopo l'aggiornamento del controllo di esplorazione di modifica con il risultato di un'azione di esplorazione.
virtual void OnAfterUpdate();
Osservazioni:
Eseguire l'override di questo metodo in una classe derivata per implementare un'azione personalizzata.
CMFCEditBrowseCtrl::OnBrowse
Chiamato dal framework dopo che l'utente fa clic sul pulsante Sfoglia del controllo di esplorazione di modifica.
virtual void OnBrowse();
Osservazioni:
Utilizzare questo metodo per eseguire codice personalizzato quando l'utente fa clic sul pulsante Sfoglia del controllo di esplorazione di modifica. Derivare la propria classe dalla classe ed eseguire l'override del CMFCEditBrowseCtrl
relativo OnBrowse
metodo. In questo metodo implementare un'azione di esplorazione personalizzata e, facoltativamente, aggiornare la casella di testo del controllo di esplorazione di modifica. Nell'applicazione usare il metodo EnableBrowseButton per inserire il controllo Edit Browse in modalità sfoglia personalizzata.
CMFCEditBrowseCtrl::OnChangeLayout
Ridisegna il controllo sfoglia di modifica corrente.
virtual void OnChangeLayout();
Osservazioni:
Il framework chiama questo metodo quando cambia la modalità di esplorazione del controllo di esplorazione di modifica. Per altre informazioni, vedere CMFCEditBrowseCtrl::GetMode.
CMFCEditBrowseCtrl::OnDrawBrowseButton
Chiamato dal framework per disegnare il pulsante Sfoglia nel controllo Sfoglia di modifica.
virtual void OnDrawBrowseButton(
CDC* pDC,
CRect rect,
BOOL bIsButtonPressed,
BOOL bIsButtonHot);
Parametri
pDC
Puntatore a un contesto di dispositivo.
Rect
Rettangolo di delimitazione del pulsante Sfoglia.
bIsButtonPressed
TRUE se il pulsante viene premuto; in caso contrario, FALSE.
bIsButtonHot
TRUE se il pulsante è evidenziato; in caso contrario, FALSE.
Osservazioni:
Eseguire l'override di questa funzione in una classe derivata per personalizzare l'aspetto del pulsante Sfoglia.
CMFCEditBrowseCtrl::SetBrowseButtonImage
Imposta un'immagine personalizzata sul pulsante Sfoglia del controllo di esplorazione di modifica.
void SetBrowseButtonImage(
HICON hIcon,
BOOL bAutoDestroy= TRUE);
void SetBrowseButtonImage(
HBITMAP hBitmap,
BOOL bAutoDestroy= TRUE);
void SetBrowseButtonImage(UINT uiBmpResId);
Parametri
hIcon
Handle di un'icona.
hBitmap
Handle di una bitmap.
uiBmpResId
ID risorsa di una bitmap.
bAutoDestroy
TRUE per eliminare l'icona o la bitmap specificata all'uscita da questo metodo; in caso contrario, FALSE. Il valore predefinito è TRUE.
Osservazioni:
Utilizzare questo metodo per applicare un'immagine personalizzata al pulsante Sfoglia. Per impostazione predefinita, il framework ottiene un'immagine standard quando il controllo sfoglia di modifica è in modalità di esplorazione dei file o di cartella.
CMFCEditBrowseCtrl::OnIllegalFileName
Chiamato dal framework quando è stato immesso un nome di file non valido nel controllo di modifica.
virtual BOOL OnIllegalFileName(CString& strFileName);
Parametri
strFileName
Specifica il nome di file non valido.
Valore restituito
Restituisce FALSE se il nome del file non può essere passato più avanti alla finestra di dialogo del file. In questo caso, lo stato attivo viene impostato nuovamente sul controllo di modifica e l'utente deve continuare a modificare. L'implementazione predefinita visualizza una finestra di messaggio che indica all'utente il nome file non valido e restituisce FALSE. È possibile eseguire l'override di questo metodo, correggere il nome del file e restituire TRUE per un'ulteriore elaborazione.