DirListBox en VC?

18/08/2004 - 10:26 por Sergio | Informe spam
Hola grupo,

¿Existe algo parecido en vc al DirListBox? Es que para cargar los
directorios del disco duro lo estoy haciendo através de una función
recursiva en un TreeView, y el tiempo de carga es realmente alto. Y sin
embargo los DirListBox de vb no tardan absolutamente nada.

Me imagino que tardan tan poco porque no cargan todos los directorios de
golpe no? Sino que según vas abriendo cargan los correspondientes
subdirectorios, sin recorrer los que estan por debajo de estos.

Preguntas similare

Leer las respuestas

#1 pablo crosio
18/08/2004 - 16:31 | Informe spam
te paso una respuesta que dieron hace un tiempo en este
foro:

consulta por

SendMessage() / CB_DIR

y

DlgDirListComboBox() / DDL_DRIVES

salu2!!

pablo


Hola grupo,

¿Existe algo parecido en vc al DirListBox? Es que para


cargar los
directorios del disco duro lo estoy haciendo através de


una función
recursiva en un TreeView, y el tiempo de carga es


realmente alto. Y sin
embargo los DirListBox de vb no tardan absolutamente nada.

Me imagino que tardan tan poco porque no cargan todos los


directorios de
golpe no? Sino que según vas abriendo cargan los


correspondientes
subdirectorios, sin recorrer los que estan por debajo de


estos.
.

Respuesta Responder a este mensaje
#2 Sergio
18/08/2004 - 17:30 | Informe spam
pablo crosio wrote:
te paso una respuesta que dieron hace un tiempo en este
foro:

consulta por

SendMessage() / CB_DIR

y

DlgDirListComboBox() / DDL_DRIVES

salu2!!

pablo




Gracias por tu respuesta, pero no es eso lo que busco exactamente.

He probado a hacer algo parecido, pero con un listbox (es que quiero
mostrar un arbol de directorios, en una lista), pero no genera el arbol,
solo lista el contenido del directorio. Me imagino que para la vista de
arbol habrá que usar el TreeView, pero no encuentro el mensaje
correspondiente (si existe) para que cargue un directorio.
Respuesta Responder a este mensaje
#3 pablo crosio
18/08/2004 - 22:30 | Informe spam
hola!

pues no entiendo bien... estos mensajes son para un
combobox... fijate que tenes una serie de constantes para
especificar lo que queres mostrar, por ej: DDL_DIRECTORY,
DDL_DRIVES, etc etc

pero claro que si queres darle forma de arbol vas a tener
que armar todo en un treeview y a mano... se me ocurre que
vas a tener que mostrar solamente los directorios, y
cuando se expandan los nodos, los subdir y archivos (pero
nunca tuve el agrado de hacer algo asi)...

salu2!!

pablo



pablo crosio wrote:
te paso una respuesta que dieron hace un tiempo en este
foro:

consulta por

SendMessage() / CB_DIR

y

DlgDirListComboBox() / DDL_DRIVES

salu2!!

pablo




Gracias por tu respuesta, pero no es eso lo que busco


exactamente.

He probado a hacer algo parecido, pero con un listbox (es


que quiero
mostrar un arbol de directorios, en una lista), pero no


genera el arbol,
solo lista el contenido del directorio. Me imagino que


para la vista de
arbol habrá que usar el TreeView, pero no encuentro el


mensaje
correspondiente (si existe) para que cargue un directorio.
.

Respuesta Responder a este mensaje
#4 Mateu Perelló
18/08/2004 - 23:37 | Informe spam
Como no se programar en VB (aun jeje) no se lo que es DirListBox,
pero si lo que quieres hacer es un treeListCtrl con los direccrios y
carpetas del PC ,te paso este código que me pasaron en el foro

espero que te vaya bien

HRESULT hr;
ITEMIDLIST *pItemList;
BROWSEINFO browseinfo;
TCHAR path[MAX_PATH];
hr = ::CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
if (FAILED(hr)) {
TRACE("CoInitEx failed: %x", hr);
return ;
}
IMalloc *pMalloc = NULL;
hr = SHGetMalloc(&pMalloc);
if (FAILED(hr)) {
TRACE("Can't retrieve system's IMalloc interface: %x", hr);
return ;
}
ASSERT(pMalloc);
memset(&browseinfo, 0, sizeof(BROWSEINFO));
CString strCaption(_T("Seleccione la correspondiente carpeta"));
browseinfo.hwndOwner = GetSafeHwnd();
browseinfo.pszDisplayName = path;
browseinfo.ulFlags = BIF_RETURNONLYFSDIRS;//tipo de dialeg BIF_ + CTRL+SPACE
BIF_NEWDIALOGSTYLE |
browseinfo.lpszTitle = strCaption;

pItemList = ::SHBrowseForFolder(&browseinfo);
if (pItemList)
{
// Behold the elegance of CStrBuf!
//::SHGetPathFromIDList(pItemList, CStrBuf(szTorna, MAX_PATH));
::SHGetPathFromIDList(pItemList, CStrBuf(m_szCarpeta, MAX_PATH));
pMalloc->Free(pItemList);
}
pMalloc->Release();
pMalloc = NULL;
::CoUninitialize();
UpdateData(false);


Atentamente Mateu Perelló


A10


"Sergio" escribió en el mensaje
news:
Hola grupo,

¿Existe algo parecido en vc al DirListBox? Es que para cargar los
directorios del disco duro lo estoy haciendo através de una función
recursiva en un TreeView, y el tiempo de carga es realmente alto. Y sin
embargo los DirListBox de vb no tardan absolutamente nada.

Me imagino que tardan tan poco porque no cargan todos los directorios de
golpe no? Sino que según vas abriendo cargan los correspondientes
subdirectorios, sin recorrer los que estan por debajo de estos.
Respuesta Responder a este mensaje
#5 Sergio
19/08/2004 - 08:25 | Informe spam
Mateu Perelló wrote:
Como no se programar en VB (aun jeje) no se lo que es DirListBox,
pero si lo que quieres hacer es un treeListCtrl con los direccrios y
carpetas del PC ,te paso este código que me pasaron en el foro

espero que te vaya bien



Gracias por la ayua, pero tampoco es lo que busco exactamente. No quiero
un dialogo modal, sino un "explorador" dentro de mi aplicación, como una
parte más de mi dialogo.

Un DirListBox es, por lo que yo he visto, que tampoco soy un experto en
vb, un explorador de windows que puedes integrar en el dialogo, más o
menos sería eso.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida