Questione : Come posso convincere CFileDialog per non cambiare l'indice iniziale?


La nostra applicazione ha un numero molto grande dei casi in cui un CFileDialog è aperto. Abbiamo aggiunto uno in cui vogliamo mantenere un indice di difetto separato. cioè così generalmente le conservazioni di CFileDialog è indice iniziale a partire dall'ultima volta che l'utente ha acceduto ad una lima. Tuttavia in questo caso vogliamo stabilizzare ad un indice differente senza cambiare l'indice precedentemente ricordato usato dal resto dell'applicazione.

È l'ultima parte che non posso ottenere di lavorare. Ho pensato che dovrebbe essere di facile impiego la bandierina di OFN_NOCHANGEDIR con il CFileDialog, ma questo non sembra fare qualche cosa.

Inoltre ho provato a conservare l'indice corrente prima del usando il dialogo della lima ed allora del ristabilimento esso using questi metodi:

currentDir di CString;
:: GetCurrentDirectory (MAX_PATH, currentDir.GetBuffer (MAX_PATH));
currentDir.ReleaseBuffer ();

… archivare l'accesso

:: SetCurrentDirectory (currentDir);

Mentre il currentDir sembra essere ottenuto correttamente, SetCurrentDirectory non sembra influenzare la prossima volta un dialogo della lima è aperto.

È “l'indice corrente„ realmente la giusta cosa da regolarsi? In caso affermativo che punto fa a CFileDialog regolarlo solitamente?

Realmente gradirei un certo soultion che non significa passare attraverso l'intera base di codice ed il cambiamento dell'ogni dialogo della lima attuale.




Risposta : Come posso convincere CFileDialog per non cambiare l'indice iniziale?

Quello è ora voi dice che avete saputo. :)

Ci è soltanto un posto in cui tali cose sono immagazzinate - la registrazione. Potete provare a metterlo a punto programma - vederete il codice sorgente di MFC (CWinApp, CDocManager) e questo posto nella registrazione. Penso, esso sarò HKLM/Software/Provider/Application/something.

Penso che ci sia un senso ignorare i metodi di CDocManager:
http://www.codeguru.com/cpp/w-d/dislog/commondialogs/print.php/c1967




Altre soluzioni  
 
programming4us programming4us