Procedimentos de gancho de estilo do Explorer

Você pode personalizar um Explorer-estilo Abrir ou Salvar como caixa de diálogo, fornecendo um procedimento de gancho, um modelo personalizado ou ambos. Se você fornecer um procedimento de gancho para uma caixa de diálogo do estilo do Explorer, o sistema cria uma caixa de diálogo que é um filho da caixa de diálogo padrão. O procedimento de gancho atua como o procedimento de diálogo para a caixa de diálogo filho. Esta caixa de diálogo filho é baseada no modelo personalizado ou em um modelo padrão se nenhum é fornecido. Para obter mais informações, consulte Modelos do explorador-estilo personalizado.

Para habilitar um procedimento de gancho de um Explorer-estilo Abrir ou Salvar como caixa de diálogo, use a OPENFILENAME estrutura quando você cria a caixa de diálogo. Definir os sinalizadores OFN_ENABLEHOOK e OFN_EXPLORER na sinalizadores membro e especifique o endereço de um procedimento de gancho de OFNHookProc na lpfnHook membro. Se você fornece um procedimento gancho e omitir o Sinalizar OFN_EXPLORER, você deve usar um procedimento de gancho de OFNHookProcOldStyle e você obterá a interface de usuário do estilo antigo. Para obter mais informações, consulte Personalizar caixas de diálogo de estilo antigo.

Um procedimento de gancho de estilo do Explorer recebe uma variedade de mensagens enquanto a caixa de diálogo é aberta. Estes incluem os seguintes:

Além disso, há um conjunto de mensagens que você pode enviar para uma caixa de diálogo do estilo do Explorer para obter informações ou para controlar o comportamento e a aparência da caixa de diálogo.

Se você fornecer um procedimento de gancho para uma caixa de diálogo do estilo do Explorer, o procedimento de caixa de diálogo padrão cria uma caixa de diálogo filho quando o procedimento caixa de diálogo usar como padrão está processando sua mensagem WM_INITDIALOG . O procedimento de gancho atua como o procedimento de diálogo para a caixa de diálogo filho. Neste momento, o procedimento gancho recebe seu próprio WM_INITDIALOG mensagem com lParam parâmetro definido para o endereço das OPENFILENAME estrutura usada para inicializar a caixa de diálogo. Depois que a caixa de diálogo filho termina o processamento de sua própria WM_INITDIALOG mensagem, o procedimento de diálogo padrão move os controles padrão, se necessário, para dar espaço para quaisquer controles adicionais da caixa de diálogo filho. O procedimento de diálogo usar como padrão, em seguida, envia a mensagem de notificação CDN_INITDONE para o procedimento gancho.

O procedimento gancho recebe mensagens de notificação WM_NOTIFY indicando ações tomadas pelo usuário na caixa de diálogo. Você pode usar algumas dessas mensagens para controlar o comportamento da caixa de diálogo. Por exemplo, o procedimento gancho recebe a mensagem CDN_FILEOK quando o usuário escolhe um nome de arquivo e clica no botão OK . Em resposta a esta mensagem, o procedimento de gancho pode usar o SetWindowLong função para rejeitar o nome selecionado e forçar a caixa de diálogo permaneça aberta.

O lParam parâmetro para cada mensagem WM_NOTIFY é um ponteiro para um OFNOTIFY estrutura que define a ação. O membro de código no cabeçalho para o OFNOTIFY estrutura contém um dos seguintes códigos de notificação.

CDN_FILEOK O usuário clicou no botão OK ; a caixa de diálogo está prestes a fechar.
CDN_FOLDERCHANGE O usuário abriu uma nova pasta ou diretório.
CDN_HELP O usuário clicou no botão Ajuda.
CDN_INITDONE O sistema finalizar a inicializar a caixa de diálogo, e a caixa de diálogo terminou de processar a mensagem WM_INITDIALOG . Além disso, o sistema tenha terminado organizando controles na caixa de diálogo comum para fazer o quarto para os controles da caixa de diálogo filho (se houver).
CDN_SELCHANGE O usuário selecionou um novo arquivo ou pasta da lista de arquivos.
CDN_SHAREVIOLATION A caixa de diálogo comum encontrou uma violação de compartilhamento o arquivo prestes a ser retornado.
CDN_TYPECHANGE O usuário selecionado um novo tipo de arquivo na lista de tipos de arquivo.

Essas mensagens WM_NOTIFY substituem o FILEOKSTRING, LBSELCHSTRING, SHAREVISTRINGe HELPMSGSTRING registraram mensagens utilizadas por versões anteriores das caixas de diálogo Abrir e Salvar como . No entanto, o procedimento de gancho também recebe a mensagem anulada ou substituída após a mensagem WM_NOTIFY se o processamento de WM_NOTIFY não usar SetWindowLong para definir um diferente de zero valor DWL_MSGRESULT.

Para recuperar informações sobre o status da caixa de diálogo ou para controlar o comportamento e a aparência da caixa de diálogo, o procedimento de gancho pode enviar as seguintes mensagens para a caixa de diálogo.

CDM_GETFILEPATH Recupera o caminho e o nome do arquivo do arquivo selecionado.
CDM_GETFOLDERIDLIST Recupera a lista identificador item correspondente para a pasta atual que a caixa de diálogo foi aberta. Para obter mais informações sobre listas de identificador de item, consulte identificador de listas e identificadores Item.
CDM_GETFOLDERPATH Recupera o caminho da pasta atual ou diretório para a caixa de diálogo.
CDM_GETSPEC Recupera o nome do arquivo (não incluindo o caminho) do arquivo selecionado atualmente na caixa de diálogo.
CDM_HIDECONTROL Oculta o Controlarar especificado.
CDM_SETCONTROLTEXT Define o texto no Controlarar especificado.
CDM_SETDEFEXT Define a extensão de nome de arquivo padrão para a caixa de diálogo.

Index