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 ?