Classe CMFCEditBrowseCtrl

A classe CMFCEditBrowseCtrl dá suporte ao controle de procura, que é uma caixa de texto editável que, opcionalmente, contém um botão Procurar. Quando o usuário clica no botão procurar, o controle executa uma ação personalizada ou exibe uma caixa de diálogo padrão que contém um navegador de arquivos ou um navegador de pastas.

Sintaxe

class CMFCEditBrowseCtrl : public CEdit

Membros

Construtores públicos

Nome Descrição
CMFCEditBrowseCtrl::CMFCEditBrowseCtrl Construtor padrão.
CMFCEditBrowseCtrl::~CMFCEditBrowseCtrl Destruidor.

Métodos públicos

Nome Descrição
CMFCEditBrowseCtrl::EnableBrowseButton Habilita ou desabilita (oculta) o botão Procurar.
CMFCEditBrowseCtrl::EnableFileBrowseButton Habilita o botão Procurar e coloca o controle de procura no modo de navegação de arquivo.
CMFCEditBrowseCtrl::EnableFolderBrowseButton Habilita o botão Procurar e coloca o controle de procura no modo de navegação de pasta.
CMFCEditBrowseCtrl::GetMode Retorna o modo de procura atual.
CMFCEditBrowseCtrl::OnAfterUpdate Chamado pela estrutura depois que o controle de procura é atualizado com o resultado de uma ação de navegação.
CMFCEditBrowseCtrl::OnBrowse Chamado pela estrutura depois que o usuário clica no botão Procurar.
CMFCEditBrowseCtrl::OnChangeLayout Redesenha o controle de procura atual.
CMFCEditBrowseCtrl::OnDrawBrowseButton Chamado pela estrutura para desenhar o botão Procurar.
CMFCEditBrowseCtrl::OnIllegalFileName Chamado pela estrutura quando um nome de arquivo inválido foi inserido no controle de edição.
CMFCEditBrowseCtrl::PreTranslateMessage Converte mensagens de janela antes de serem enviadas para as funções TranslateMessage e DispatchMessage de Windows. Para conhecer a sintaxe e obter mais informações, consulte CWnd::PreTranslateMessage.
CMFCEditBrowseCtrl::SetBrowseButtonImage Define uma imagem personalizada para o botão Procurar.

Comentários

Use um controle de navegação de edição para selecionar um nome de arquivo ou pasta. Opcionalmente, use o controle para executar uma ação personalizada, como exibir uma caixa de diálogo. Você pode exibir ou não o botão Procurar e pode aplicar um rótulo personalizado ou uma imagem no botão.

O modo de navegação do controle de procura determina se ele exibe um botão Procurar e qual ação ocorre quando o botão é clicado. Para obter mais informações, consulte o método GetMode.

A classe CMFCEditBrowseCtrl dá suporte aos modos a seguir.

  • modo personalizado

    Uma ação personalizada é executada quando o usuário clica no botão Procurar. Por exemplo, você pode exibir uma caixa de diálogo específica do aplicativo.

  • modo de arquivo

    Uma caixa de diálogo de seleção de arquivo padrão é exibida quando o usuário clica no botão Procurar.

  • modo de pasta

    Uma caixa de diálogo de seleção de pasta padrão é exibida quando o usuário clica no botão Procurar.

Como: especificar um controle de procura

Execute as seguintes etapas para incorporar um controle de procura em seu aplicativo:

  1. Se você quiser implementar um modo de navegação personalizado, derive sua própria classe da classe CMFCEditBrowseCtrl e substitua o método CMFCEditBrowseCtrl::OnBrowse. No método substituído, execute uma ação de navegação personalizada e atualize o controle de procura com o resultado.

  2. Insira o objeto CMFCEditBrowseCtrl ou o objeto de controle de procura derivado no objeto de janela pai.

  3. Se você usar o Assistente de classe para criar uma caixa de diálogo, adicione um controle de edição (CEdit) ao formulário da caixa de diálogo. Além disso, adicione uma variável para acessar o controle no arquivo de cabeçalho. No arquivo de cabeçalho, altere o tipo da variável de CEdit para CMFCEditBrowseCtrl. O controle de procura será criado automaticamente. Se você não usar o Assistente de classe, adicione uma variável CMFCEditBrowseCtrl ao arquivo de cabeçalho e chame seu método Create.

  4. Se você adicionar um controle de procura a uma caixa de diálogo, use a ferramenta ClassWizard para configurar a troca de dados.

  5. Chame o método EnableFolderBrowseButton, EnableFileBrowseButton ou EnableBrowseButton para definir o modo de navegação e exibir o botão Procurar. Chame o método GetMode para obter o modo de navegação atual.

  6. Para fornecer uma imagem personalizada para o botão Procurar, chame o método SetBrowseButtonImage ou substitua o método OnDrawBrowseButton.

  7. Para remover o botão Procurar do controle de procura, chame o método EnableBrowseButton com o parâmetro bEnable definido como FALSE.

Hierarquia de herança

CObject

CCmdTarget

CWnd

CEdit

CMFCEditBrowseCtrl

Exemplo

O exemplo a seguir demonstra como usar dois métodos na classe CMFCEditBrowseCtrl: EnableFolderBrowseButton e EnableFileBrowseButton. Este exemplo faz parte da amostra de Novos Controles.

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();

Requisitos

Cabeçalho: afxeditbrowsectrl.h

CMFCEditBrowseCtrl::EnableBrowseButton

Exibe ou não exibe o botão Procurar no controle de procura atual.

void EnableBrowseButton(
    BOOL bEnable=TRUE,
    LPCTSTR szLabel=_T("..."));

Parâmetros

bEnable
TRUE para exibir o botão Procurar; FALSE para não exibir o botão Procurar. O valor padrão é TRUE.

szLabel
O rótulo exibido no botão Procurar. O valor padrão é " ...".

Comentários

Se o parâmetro bEnable for TRUE, implemente uma ação personalizada a ser executada quando o botão Procurar for clicado. Para implementar uma ação personalizada, derive uma classe da classe CMFCEditBrowseCtrl e substitua seu método OnBrowse.

Se o parâmetro bEnable for TRUE, o modo de navegação do controle será BrowseMode_Default; caso contrário, o modo de navegação será BrowseMode_None. Para obter mais informações sobre modos de navegação, consulte o método GetMode.

CMFCEditBrowseCtrl::EnableFileBrowseButton

Exibe o botão Procurar no controle de procura atual e coloca o controle no modo de navegação de arquivo.

void EnableFileBrowseButton(
    LPCTSTR lpszDefExt=NULL,
    LPCTSTR lpszFilter=NULL,
    DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT);

Parâmetros

lpszDefExt
Especifica a extensão de nome de arquivo padrão usada na caixa de diálogo de seleção de arquivo. O valor padrão é NULL.

lpszFilter
Especifica a cadeia de caracteres de filtro padrão usada na caixa de diálogo de seleção de arquivo. O valor padrão é NULL.

dwFlags
Sinalizadores da caixa de diálogo. O valor padrão é uma combinação bit a bit (OR) de OFN_HIDEREADONLY e OFN_OVERWRITEPROMPT.

Comentários

Quando o controle de procura estiver no modo de navegação de arquivo e o usuário clicar no botão Procurar, o controle exibirá a caixa de diálogo de seleção de arquivo padrão.

Para obter uma lista completa dos sinalizadores disponíveis, consulte estrutura OPENFILENAME.

CMFCEditBrowseCtrl::EnableFolderBrowseButton

Exibe o botão Procurar no controle de procura atual e coloca o controle no modo de navegação de pasta.

void EnableFolderBrowseButton();

Comentários

Quando o controle de procura estiver no modo de navegação de pastar e o usuário clicar no botão Procurar, o controle exibirá a caixa de diálogo de seleção de pasta padrão.

CMFCEditBrowseCtrl::GetMode

Recupera o modo de navegação do controle de procura atual.

CMFCEditBrowseCtrl::BrowseMode GetMode() const;

Valor de retorno

Um dos valores de enumeração que especifica o modo atual do controle de procura. O modo de navegação determina se a estrutura exibe o botão Procurar e qual ação ocorre quando um usuário clica nesse botão.

A tabela a seguir lista os possíveis valores de retorno.

Valor Descrição
BrowseMode_Default modo personalizado. Uma ação definida pelo programador é executada.
BrowseMode_File modo de arquivo. A caixa de diálogo de navegador de arquivo padrão é exibida.
BrowseMode_Folder modo de pasta. A caixa de diálogo de navegador de pasta padrão é exibida.
BrowseMode_None O botão Procurar não é exibido.

Comentários

Por padrão, um objeto CMFCEditBrowseCtrl é inicializado no modo BrowseMode_None. Modifique o modo de navegação com os métodos CMFCEditBrowseCtrl::EnableBrowseButton, CMFCEditBrowseCtrl::EnableFileBrowseButton e CMFCEditBrowseCtrl::EnableFolderBrowseButton.

CMFCEditBrowseCtrl::OnAfterUpdate

Chamado pela estrutura depois que o controle de procura é atualizado com o resultado de uma ação de navegação.

virtual void OnAfterUpdate();

Comentários

Substitua esse método em uma classe derivada para implementar uma ação personalizada.

CMFCEditBrowseCtrl::OnBrowse

Chamado pela estrutura depois que o usuário clica no botão Procurar do controle de procura.

virtual void OnBrowse();

Comentários

Use esse método para executar o código personalizado quando o usuário clicar no botão Procurar do controle de procura. Derive sua própria classe da classe CMFCEditBrowseCtrl e substitua seu método OnBrowse. Nesse método, implemente uma ação de navegação personalizada e, opcionalmente, atualize a caixa de texto do controle de procura. Em seu aplicativo, use o método EnableBrowseButton para colocar o controle de procura no modo de navegação personalizado.

CMFCEditBrowseCtrl::OnChangeLayout

Redesenha o controle de procura atual.

virtual void OnChangeLayout();

Comentários

A estrutura chama esse método quando o modo de navegação do controle de procura é alterado. Para obter mais informações, consulte CMFCEditBrowseCtrl::GetMode.

CMFCEditBrowseCtrl::OnDrawBrowseButton

Chamado pela estrutura para desenhar o botão Procurar no controle de procura.

virtual void OnDrawBrowseButton(
    CDC* pDC,
    CRect rect,
    BOOL bIsButtonPressed,
    BOOL bIsButtonHot);

Parâmetros

pDC
Um ponteiro para um contexto de dispositivo.

Retângulo
O retângulo delimitador do botão Procurar.

bIsButtonPressed
TRUE se o botão estiver pressionado; caso contrário, FALSE.

bIsButtonHot
TRUE se o botão estiver realçado; caso contrário, FALSE.

Comentários

Substitua essa função em uma classe derivada para personalizar a aparência do botão Procurar.

CMFCEditBrowseCtrl::SetBrowseButtonImage

Define uma imagem personalizada no botão Procurar do controle de procura.

void SetBrowseButtonImage(
    HICON hIcon,
    BOOL bAutoDestroy= TRUE);

void SetBrowseButtonImage(
    HBITMAP hBitmap,
    BOOL bAutoDestroy= TRUE);

void SetBrowseButtonImage(UINT uiBmpResId);

Parâmetros

hIcon
O identificador de um ícone.

hBitmap
O identificador de um bitmap.

uiBmpResId
A ID do recurso de um bitmap.

bAutoDestroy
TRUE para excluir o ícone ou bitmap especificado quando esse método for encerrado; caso contrário, FALSE. O valor padrão é TRUE.

Comentários

Use esse método para aplicar uma imagem personalizada ao botão Procurar. Por padrão, a estrutura obtém uma imagem padrão quando o controle de procura está no modo de navegação de arquivo ou navegação de pasta.

CMFCEditBrowseCtrl::OnIllegalFileName

Chamado pela estrutura quando um nome de arquivo inválido foi inserido no controle de edição.

virtual BOOL OnIllegalFileName(CString& strFileName);

Parâmetros

strFileName
Especifica o nome de arquivo inválido.

Valor de retorno

Deve retornar FALSE se este nome de arquivo não puder ser passado para a caixa de diálogo do arquivo. Nesse caso, o foco é definido novamente para o controle de edição, e o usuário deve continuar editando. A implementação padrão exibe uma caixa de mensagem informando ao usuário sobre o nome de arquivo inválido e retorna FALSE. Você pode substituir esse método, corrigir o nome do arquivo e retornar TRUE para processamento adicional.

Comentários

Confira também

Gráfico da hierarquia
Classes