CWnd::DlgDirListComboBox
Preenche a caixa de listagem de uma caixa de combinação com uma lista de arquivo ou diretório.
int DlgDirListComboBox(
LPTSTR lpPathSpec,
int nIDComboBox,
int nIDStaticPath,
UINT nFileType
);
Parâmetros
lpPathSpec
Aponta para uma cadeia de caracteres NULL- finalizada que contém o caminho ou o nome de arquivo. DlgDirListComboBox alterar essa cadeia de caracteres, para que esses dados não devem ser na forma de um literal de cadeia de caracteres. Consulte a seção “comentários”.nIDComboBox
Especifica o identificador de uma caixa de combinação em uma caixa de diálogo. Se nIDComboBox é 0, DlgDirListComboBox assume que nenhuma caixa de combinação existe e não tenta preencher um.nIDStaticPath
Especifica o identificador do controle de texto estático usado para exibir a unidade e o diretório atual. Se nIDStaticPath é 0, DlgDirListComboBox assume que há um controle de texto está presente.nFileType
Especifica atributos de arquivo MS-DOS dos arquivos a serem exibidos. Pode ser qualquer combinação dos seguintes valores:Arquivos de dados de leitura e escrita deDDL_READWRITE sem atributos adicionais.
Arquivo somente-leitura deDDL_READONLY .
Arquivos ocultosDDL_HIDDEN .
Arquivos de sistema deDDL_SYSTEM .
Diretórios deDDL_DIRECTORY .
Arquivos mortos deDDL_ARCHIVE .
DDL_POSTMSGS Sinalizador deCB_DIR . Se o sinalizador de CB_DIR é definido, o windows as mensagens geradas por DlgDirListComboBox na fila de aplicativo; caso contrário, são enviados diretamente para o procedimento da caixa de diálogo.
Unidades deDDL_DRIVES . Se o sinalizador de DDL_DRIVES é definido, o sinalizador de DDL_EXCLUSIVE é definido automaticamente. Portanto, para criar uma listagem de diretório que inclui unidades e arquivos, você deve chamar DlgDirListComboBox duas vezes: uma vez com o conjunto de sinalizador de DDL_DRIVES e depois com os sinalizadores para o restante da lista.
Bit de Exclusive deDDL_EXCLUSIVE . Se o bit exclusiva é definido, somente os arquivos do tipo especificado são listados; os arquivos se não regulares e os arquivos do tipo especificado são listados.
Valor de retorno
Especifica o resultado da função. É diferente de zero se uma listagem foi feita, até mesmo uma listagem vazia. Um 0 valores de retorno diz que a cadeia de caracteres de entrada não contiver um caminho de pesquisa válida.
Comentários
DlgDirListComboBox envia mensagens de CB_RESETCONTENT e de CB_DIR a caixa de combinação. Preenche a caixa de listagem caixa de combinação especificada por nIDComboBox com os nomes de todos os arquivos que correspondam o caminho fornecido por lpPathSpec.
O parâmetro de lpPathSpec tem a seguinte forma:
[drive:] [ [\u]directory[\idirectory]... \u] [filename]
Em esse exemplo, drive é uma letra da unidade, directory é um nome de diretório válido, e o nome do arquivo é um nome de arquivo válido que deve conter pelo menos uma curinga. Curingas são um ponto de interrogação (?), o que significa que a correspondência qualquer caractere, e um asterisco (*), o que significa que a correspondência qualquer número de caracteres.
Se você especificar uma cadeia de caracteres de comprimento zero, lpPathSpecpara o diretório atual será usado e lpPathSpec não será alterado. Se você especificar apenas um nome de diretório mas não inclui nenhum especificação de arquivo, a cadeia de caracteres será alterada “*”.
Se lpPathSpec inclui uma unidade e/ou um nome de diretório, a unidade e o diretório atuais são alterados para a unidade e o diretório designados antes que a caixa de listagem é preenchida. O controle de texto identificado por nIDStaticPath também é atualizado com a nova unidade e/ou nome do diretório.
Depois que a caixa de listagem caixa de combinação é preenchida, lpPathSpec é atualizado remover a parte da unidade e/ou de diretório do caminho.
Exemplo
// If pDialog points to a CDialog object with a combo box
// with the identifier IDC_DIRCOMBO, this call will populate
// the box with only the non-hidden subdirectories in the root
// directory of the C:\ drive.
TCHAR szPath[MAX_PATH];
_tcsncpy_s(szPath, MAX_PATH, _T("C:\\"), MAX_PATH);
pDialog->DlgDirListComboBox(szPath, IDC_DIRCOMBO, 0, DDL_EXCLUSIVE |
DDL_DIRECTORY);
// Note that the first argument is a string and not a string
// literal. This is necessary because DlgDirListComboBox
// modifies the supplied string. Passing a string literal
// will result in an access violation.
Requisitos
Cabeçalho: afxwin.h