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:

  1. 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.

  2. Incorporare l'oggetto o l'oggetto CMFCEditBrowseCtrl controllo sfoglia derivato nell'oggetto finestra padre.

  3. 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 da CEdit a CMFCEditBrowseCtrl. Il controllo di esplorazione di modifica verrà creato automaticamente. Se non si usa la Creazione guidata classi, aggiungere una CMFCEditBrowseCtrl variabile al file di intestazione e quindi chiamare il Create relativo metodo.

  4. Se si aggiunge un controllo Sfoglia di modifica a una finestra di dialogo, utilizzare lo strumento ClassWizard per configurare lo scambio di dati.

  5. 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.

  6. Per fornire un'immagine personalizzata per il pulsante Browse, chiamare il metodo SetBrowseButtonImage o eseguire l'override del metodo OnDrawBrowseButton .

  7. Per rimuovere il pulsante Sfoglia dal controllo Sfoglia di modifica, chiamare il metodo EnableBrowseButton con il parametro bEnable impostato su FALSE.

Gerarchia di ereditarietà

CObject

CCmdTarget

CWnd

CEdit

CMFCEditBrowseCtrl

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.

Osservazioni:

Vedi anche

Grafico della gerarchia
Classi