Choix d'un répertoire (Boite de Dlg) [VC++] - Programmation
Marsh Posté le 02-03-2002 à 18:20:49
bon ben, je vais faire les questions réponses  
 
Je cherchais depuis 1 heure et je viens de trouver en 1s sur codeguru... 
 
// On remplace ligne  
 bi.lpfn     = NULL; 
//par 
 bi.lpfn     = BrowseCallbackProc; 
 
 
// On défini la callback suivante : 
 
static int __stdcall BrowseCallbackProc(HWND hwnd,UINT uMsg,LPARAM lp, LPARAM pData) 
{ 
 TCHAR szDir[MAX_PATH] = {NULL}; 
 if (uMsg == BFFM_INITIALIZED) 
 { 
 	//  Browse dialog initialized - set it to our default folder 
       wsprintf(szDir, "%s","c:\\mon rep" ); 
   
 	// put initial directory here       
 	SendMessage(hwnd,BFFM_SETSELECTION,TRUE,(LPARAM)szDir); 
 }      
 return 0; 
} 
 
 
et voila, c'est gagné 
Marsh Posté le 02-03-2002 à 18:22:43
| leander a écrit a écrit  : bon ben, je vais faire les questions réponses   Je cherchais depuis 1 heure et je viens de trouver en 1s sur codeguru... // On remplace ligne bi.lpfn = NULL; //par bi.lpfn = BrowseCallbackProc; // On défini la callback suivante : static int __stdcall BrowseCallbackProc(HWND hwnd,UINT uMsg,LPARAM lp, LPARAM pData) { TCHAR szDir[MAX_PATH] = {NULL}; if (uMsg == BFFM_INITIALIZED) { // Browse dialog initialized - set it to our default folder wsprintf(szDir, "%s","c:\\mon rep" ); // put initial directory here SendMessage(hwnd,BFFM_SETSELECTION,TRUE,(LPARAM)szDir); } return 0; } et voila, c'est gagné | 
 
 
codeguru ... quelle adresse ? 
Marsh Posté le 02-03-2002 à 18:35:30
| leander a écrit a écrit  : www.codeguru.com ......................... | 
 
 
thx ;-) 
Marsh Posté le 02-03-2002 à 18:11:16
je suis en train de faire un boite de dialogue qui possède un bouton qui permet de choisir un repertoire qui sera utilisé dans la suite l'application.
Pour le moment, j'utilise le code suivant :
bi.pidlRoot = NULL;
bi.pszDisplayName = szString;
bi.lpszTitle = "Choisir un repertoire";
bi.ulFlags = BIF_RETURNONLYFSDIRS;
bi.lpfn = NULL;
bi.lParam = 0;
bi.iImage = 0;
pidl = SHBrowseForFolder(&bi);
if (pidl != NULL)
{
IMalloc* pm;
SHGetPathFromIDList( pidl, szPathName );
SHGetMalloc(&pm);
if (pm)
{
pm->Free(pidl);
pm->Release();
}
m_EditPathName.SetWindowText( szPathName );
}
Mais ça ne me satisfait pas encore. En effet j'aimerai pouvoir spécifier le répertoire par défaut qui est activé lorsque l'on ouvre la boite de dialogue pour choisir son rep. Parce que pour le moment, elle s'ouvre toujours sur le bureau.
Apparement on spéficier des repertoires classique "program files, mes documents, etc..." mais je n'arrive à trouver comment spécifier mon répertoire à moi par défaut.
Je sais qu'il faut remplir le champ bi.pidlRoot avec un ITEMIDLIST, mais j'ai pas encore compris comme ça marche.
Es-ce que quelqu'un aurai un petit exemple ?