Question : Comment est-ce que je peux obtenir CFileDialog pour ne pas changer l'annuaire initial ?


Notre application a un nombre très grand d'exemples dans lesquels un CFileDialog est ouvert. Nous avons additionné un dans lequel nous voulons maintenir un annuaire de défaut séparé. c.-à-d. tellement en général les subsistances de CFileDialog c'est annuaire initial de la dernière fois où l'utilisateur a accédé à un dossier. De quelque manière que dans ce cas nous voulons nous transférer sur un annuaire différent sans changer l'annuaire précédemment rappelé employé par le reste de l'application.

C'est la dernière partie qui je ne peux pas obtenir de travailler. J'ai pensé qu'il devrait être facile à utiliser le drapeau d'OFN_NOCHANGEDIR avec le CFileDialog, mais ceci ne semble faire rien.

J'ai également essayé de sauver l'annuaire courant avant d'employer le dialogue de dossier et puis le reconstituer suivre ces méthodes :

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

… classer l'accès

: : SetCurrentDirectory (currentDir) ;

Tandis que le currentDir semble être obtenu correctement, SetCurrentDirectory ne semble pas influencer la prochaine fois qu'un dialogue de dossier est ouvert.

« L'annuaire courant » réellement la bonne chose est-il à placer ? Si ainsi chez quel point fait CFileDialog le placer habituellement ?

Je voudrais vraiment un certain soultion qui ne signifie pas passer par la base entière de code et changer chaque dialogue de dossier existant.




Réponse : Comment est-ce que je peux obtenir CFileDialog pour ne pas changer l'annuaire initial ?

C'est maintenant vous disent que vous avez su. :)

Il y a seulement un endroit où de telles choses sont stockées - l'enregistrement. Vous pouvez essayer de vous corriger programme - vous verrez le code source de cpc (CWinApp, CDocManager) et cet endroit dans l'enregistrement. Je pense, il serai HKLM/Software/Provider/Application/something.

Je pense qu'il y a une manière de dépasser des méthodes de CDocManager :
http://www.codeguru.com/cpp/w-d/dislog/commondialogs/print.php/c1967




Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us