Visual C++のMFCです。
CFileDialogを使ってファイルを指定して開くと、カレントディレクトリの位置が変化して、次回、CFileDialogで開くときは、その変化したあとの最新のディレクトリが開きますね。
このカレントディレクトリは、GetCurrentDirectory で、調べることができました。
しかし、特定のディレクトリ(フォルダ)をCFileDialogで開きたいとき、SetCurrentDirectory で設定しようとしても、これでは、CFileDialogで開くフォルダ位置を変更できません。
CFileDialogで開きたいフォルダ位置を変更するコマンドを教えてください。
DoModal()をする以前に設定したいので、CFileDialogクラスとは別の関数、できれば、SDKの関数等であれば、いいです。
No.1ベストアンサー
- 回答日時:
CFileDialog のメンバにm_ofnというOPENFILENAME構造体があります
その中にさらにlpstrInitialDir というメンバ変数がありこれでイニシャルディレクトリが指定できます
----sample-----
CFileDialog fileDlg(TRUE);
fileDlg.m_ofn.lpstrInitialDir = TEXT("C:\\");
if (fileDlg.DoModal() == IDOK)
{
MessageBox(fileDlg.m_ofn.lpstrFile);;
}
お返事ありがとうございました。
ただ、ちょっと事情がありまして、
なんとか関数("C:\\");
というのをしてから、
CFileDialog fileDlg(TRUE);
if (fileDlg.DoModal() == IDOK)
{
...
}
としたいのです。
これができるなんとか関数を探しています。
この、なんとか関数は、fileDlgとは関係のない、SDK関数とか、CWindやCViewの関数とかです。
No.2
- 回答日時:
lpstrInitialDir が指定できないならOSによって動作が変わります。
XPやVistaでしたらレジストリをいじることになると思います。
XPはHKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSaveMRU
Vistaは同\OpenSavePidlMRU
の各拡張子別にファイルを開くダイアログのファイル名のところで表示されるドロップダウンリストの項目が保存されています。
該当する拡張子でこれの一番上を開きたいディレクトリに変更すると出来るかもしれません(確認はしていません)。
98以前ならカレントディレクトリで設定できたかも
お返事ありがとうございました。
わたしの場合は、XPです。
ややこしいようですね。レジストリですか。
プログラムの普通の関数ではできない、ということですね。
(レジストリを触る専用関数は別にして)
CFileDialogで、DoModalをしてファイルを選択すると、そのあと、全く別のところでまた、新たなCFileDialogインスタンスを作ってDoModalをすると、前にファイル選択をしたディレクトリを憶えていて、そのディレクトリが開かれますが、これはCFileDialogの関数内でレジストリを触っているのでしょうか。
マイクロソフトは、ほんとレジストリなんてつまらんもんを作ったために、ほんとめんどくさいですよね。
レジストリは触ると怖いので、別の方法を模索したいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(開発・運用・管理) フォルダの中にファルダを作成してファイルを格納するバッチコマンド 1 2022/06/30 11:39
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2022/10/26 17:14
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/03 09:11
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
- その他(プログラミング・Web制作) 図に示す階層構造で,現在のディレクトリ(カレントディレクトリという)が*印のディレクトリであるとき, 2 2022/11/16 10:55
- その他(開発・運用・管理) 【至急】.htaccessによるディレクトリ単位でのリダイレクト 2 2023/08/10 13:46
- Windows 10 エクスプローラーが開かなくなった? 1 2022/07/07 15:34
- Visual Basic(VBA) 複数ブックの統合について Excel VBA 1 2022/05/13 09:48
- Android(アンドロイド) QuickPik GalleryでSDカードの「root」のディレクトリが出てこない 3 2022/07/11 14:43
- Excel(エクセル) VBA 最新のフォルダ取得 1 2022/04/15 15:51
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
CStringのFindで文字列検索を行いたいのですが
C言語・C++・C#
-
CStringの文字列検索&抜き出しについて
C言語・C++・C#
-
CString から LPCTSTRの型に変換
C言語・C++・C#
-
-
4
CStringからchar*への型変換について教えてください。
C言語・C++・C#
-
5
画面を強制的に再描画させる方法
C言語・C++・C#
-
6
ボタンの表示の色、フォントを変更したい
C言語・C++・C#
-
7
ラジオボタンのグループ化
C言語・C++・C#
-
8
MFC ダイアログ上のID取得について
C言語・C++・C#
-
9
VC++で文字列から任意の文字を削除するにはどうしたらいいですか?
C言語・C++・C#
-
10
CFileDialogを使用して、Pathを取得する方法
C言語・C++・C#
-
11
ダイアログ内コントロールの位置取得について
C言語・C++・C#
-
12
UpdateData( FALSE); による文字列データの表示更新(VC++6.0)
C言語・C++・C#
-
13
CStringをwchar_tに変換したい
C言語・C++・C#
-
14
OpenFileDialogを使った後にもう一度開くと以前のファイルを表示させたい。
Visual Basic(VBA)
-
15
「fatal error C1189」を回避するには?
C言語・C++・C#
-
16
コンボボックスのドロップダウンリストが表示されない
C言語・C++・C#
-
17
std::stringからLPCWSTR型への変換
C言語・C++・C#
-
18
CListCtrlで行の高さを指定したい。
C言語・C++・C#
-
19
MFCでOnPaintのタイミング
C言語・C++・C#
-
20
MFCダイアログボックスを最前面に表示
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチを用いたフォルダの自動移動
-
現在位置より2つ上のディレク...
-
/usr/local/lib/phpとはどうい...
-
FTPコマンドでディレクトリごと...
-
ファイルの更新日時でのソート
-
Subversionのリポジトリの削除
-
exec()で他ディレクトリのexeプ...
-
ファイルアップロードに関して...
-
$_SERVER["HTTP_HOST"]と、$_SE...
-
makefile でファイルをコピーす...
-
includeが出来ない訳とは?
-
上位ディレクトリ名(フォルダ...
-
rmdirでフォルダが消せません
-
Subversionで、ファイルをリネ...
-
visualstudioでc#のdllができない
-
SHGetSpecialFolderLocation
-
glob関数で日本語文字が取得で...
-
VB.NET 最下位のディレクトリ名...
-
URLに特定の文字を含む場合の条...
-
PHPのプログラムの保存場所
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
FTPコマンドでディレクトリごと...
-
バッチを用いたフォルダの自動移動
-
CFileDialogの最初のディレクト...
-
現在位置より2つ上のディレク...
-
Subversionのリポジトリの削除
-
fopenでファイルが開かない場合...
-
makefile でファイルをコピーす...
-
VB.NET 最下位のディレクトリ名...
-
rmdirでフォルダが消せません
-
visualstudioでc#のdllができない
-
ファイルアップロードに関して...
-
絶対パス?絶対アドレス?意味...
-
MkDir関数
-
拡張子を隠すのは良い事なので...
-
Subversionで、ファイルをリネ...
-
powershell で書いたプログラム...
-
コマンドプロンプトを指定のデ...
-
ファイル選択ダイアログで選択...
-
aspのページが表示できません
-
JAVA内で複数のファイルを削除...
おすすめ情報