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:
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.Insira o objeto
CMFCEditBrowseCtrl
ou o objeto de controle de procura derivado no objeto de janela pai.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 deCEdit
paraCMFCEditBrowseCtrl
. O controle de procura será criado automaticamente. Se você não usar o Assistente de classe, adicione uma variávelCMFCEditBrowseCtrl
ao arquivo de cabeçalho e chame seu métodoCreate
.Se você adicionar um controle de procura a uma caixa de diálogo, use a ferramenta ClassWizard para configurar a troca de dados.
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.
Para fornecer uma imagem personalizada para o botão Procurar, chame o método SetBrowseButtonImage ou substitua o método OnDrawBrowseButton.
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
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.