Domanda

Sto usando Visual Studio 2008 ... Sto cercando di ottenere il percorso della cartella per il mio file di output nel mio progetto ... So che esiste una classe chiamata CFolderDialog .. ma non funziona nel mio pgm .. dovrebbe Includo qualsiasi file header inorder per ottenerlo..se SÌ, qualcuno può dirmi come includere in Visual Studio 2008..plz aiutarmi

È stato utile?

Soluzione

Dimentica il CFolderdialog..invece di quello..iam usarne un altro per ottenere il percorso della cartella ... controlla il mio codice qui sotto .... sto ricevendo un errore di runtime quando provo a stampare il nome del percorso della cartella in una modifica scatola ..

void CSelfExtractorUIDlg :: OnBnClickedButton1 () {

CDialog dlg;

HWND hwnd = NULL;
LPCTSTR szCurrent = (LPCTSTR)malloc(25*sizeof(TCHAR));
szCurrent = NULL;
LPTSTR szPath = (LPTSTR)malloc(25*sizeof(TCHAR));
BOOL check = BrowseForFolder(hwnd,szCurrent,szPath);
if( check == TRUE)
{
    dlg.SetDlgItemTextW(IDC_EDIT1,szPath);
}

}

BOOL BrowseForFolder (HWND hwnd, LPCTSTR szCurrent, LPTSTR szPath) {     BROWSEINFO bi = {0};     LPITEMIDLIST pidl;     TCHAR szDisplay [256];     BOOL retval;

//CoInitialize();

bi.hwndOwner      = hwnd;
bi.pszDisplayName = szDisplay;
bi.lpszTitle      = TEXT("Please choose a folder.");
bi.ulFlags        = BIF_RETURNONLYFSDIRS | BIF_NEWDIALOGSTYLE;
bi.lpfn           = BrowseCallbackProc;
bi.lParam         = (LPARAM) szCurrent;

pidl = SHBrowseForFolder(&bi);

if (NULL != pidl)
{
    retval = SHGetPathFromIDList(pidl, szPath);
    CoTaskMemFree(pidl);
}
else
{
    retval = FALSE;
}

if (!retval)
{
    szPath[0] = TEXT('\0');
}

CoUninitialize();
return retval;

} static int CALLBACK BrowseCallbackProc (HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData) {     // Se viene ricevuto il messaggio BFFM_INITIALIZED     // imposta il percorso sul percorso iniziale.     switch (uMsg)     {         caso BFFM_INITIALIZED:         {             if (NULL! = lpData)             {                 SendMessage (hwnd, BFFM_SETSELECTION, TRUE, lpData);             }         }     }

return 0; // The function should always return 0.

}

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top