 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
johnalba Invitado
|
Publicado: Lun 21 Oct, 2002 5:54 pm Asunto: Ubicar un dialogo usando "SelectDirectory" |
|
|
Hola;
Para centrar un cuadro de dialogo mostrado al llamar la funcion SelectDirectory puedes mirar el siguiente codigo, yo tambien tenia esta duda, tambien lo pregunte si te fijas en las preguntas de este foro hace muy poco, pues bien aqui vamos, esto fue lo que consegui:
Nota: incluye antes de empezar #include <shlobj.h> ok...
| Código: |
int __stdcall BrowseProc(HWND hwnd,UINT uMsg, LPARAM lParam, LPARAM lpData )
{
char szDir[MAX_PATH];
switch(uMsg)
{
case BFFM_INITIALIZED:
SendMessage(hwnd, BFFM_SETSTATUSTEXT,0,
(LPARAM)"Seleccione lo que quiera:");
//Omite el envio de este mensage si no quieres arrancar el dialogo con
//una carpeta en particular para este caso c:\Windows
SendMessage(hwnd, BFFM_SETSELECTION, TRUE,
(LPARAM)"C:\\Windows");
//Aqui lo ubicas en donde quieras usando:
SetWindowsPos(hwnd,HWND_TOP,250,100,430,300,true);
break;
case BFFM_SELCHANGED:
if(SHGetPathFromIDList((LPITEMIDLIST)lParam, szDir))
Form1->Label3->Caption = szDir;
break;
}
return 0;
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
BROWSEINFO info;
char szDir[MAX_PATH];
char szDisplayName[MAX_PATH];
LPITEMIDLIST pidl;
LPMALLOC pShellMalloc;
if(SHGetMalloc(&pShellMalloc) == NO_ERROR)
{
memset(&info, 0x00, sizeof(info));
info.hwndOwner = 0;
info.pidlRoot = NULL;
info.pszDisplayName = szDisplayName;
info.lpszTitle = "Buscar";
info.ulFlags = BIF_RETURNONLYFSDIRS|BIF_STATUSTEXT;
info.lpfn = BrowseProc; // callback funcion
pidl = SHBrowseForFolder(&info);
if(pidl)
{
if(SHGetPathFromIDList(pidl, szDir))
{
Label1->Caption = szDir;
}
Label2->Caption = info.pszDisplayName;
pShellMalloc->Free(pidl);
pShellMalloc->Release();
}
}
}
|
Espero que esto les sirva,
Estaremos en contacto,
Saludos...
John Albb. |
|
| Volver arriba |
|
 |
Droman Ens


Registrado: 04 May 2003Mensajes: 34Ubicación: Madrid - SPAIN -
|
Publicado: Mie 26 Nov, 2003 1:25 pm Asunto: |
|
|
Una de las funciones que utilizas está mal escrita, SetWindowsPos debería ser SetWindowPos
Casi me vuelvo tonto buscando el fallo que me daba... no acostumbro a usar esa función. _________________ Entonces el bibliotecario miró a los libros enfurecido y les gritó ¡¡ OOOK !! |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|