VC++ 6.0でMFC(SDI)で開発しております。
「名前をつけて保存」ダイアログを表示する為にCFileDialogを使用しています。
CFileDialog SaveDlg( FALSE
,"bmp"
,"xxx.bmp"
,NULL
,"モノクロで保存(*.bmp)|*.bmp| RGBで保存(*.bmp)|*.bmp| 色反転で保存(*.bmp)|*.bmp");
上記のコードで表示させると、フィルタに
モノクロで保存(*.bmp)|*.bmp
RGBで保存(*.bmp)|*.bmp
色反転で保存(*.bmp)|*.bmp
のように表示され、選択できますが
------------------------------------
???? どのフィルタが選択されたか ????
------------------------------------
が取得できず、非常に困っております。
FilterIndexのようなプロパティで取得できると考えていたのですが
そのようなプロパティ・関数等が見当たらず、さんざん悩んだ挙句ここに投稿した次第です。
是非お力添えを〜よろしくお願い致します。_(._.)_
FilterIndex あるぢゃん。 m_ofn.nFilterIndex ではダメかいな。
むむ…あります…?
ヘルプも調べたのですが
CFileDialogにはそういったメンバは無いようなのです。
↓
http://msdn2.microsoft.com/ja-jp/library/8dwz4azc(VS.80).aspx
本来の使い方としてはフィルタは拡張子毎に分けて
EXEファイル(*.exe)|*.exe
DLLファイル(*.dll)|*.dll
LIBファイル(*.lib)|*.lib
のように設定して使えば区別が付くのですが
拡張子が同じなもので区別が付かないのです(つд`)
>CFileDialogにはそういったメンバは無いようなのです。
CFileDialog::m_ofn
http://msdn2.microsoft.com/ja-jp/library/43xtah3y(VS.80).aspx
より
<MSDN>
m_ofn は OPENFILENAME 型の構造体です。
</MSDN>
OPENFILENAME Structure
http://msdn2.microsoft.com/ja-jp/library/ms646839(en-us).aspx
より
<MSDN>
nFilterIndex
Specifies the index of the currently selected filter in the File Types control.</MSDN>
とあります。
つまり、
if (SaveDlg.DoModal())
{
switch (SaveDlg.m_ofn.nFilterIndex)
{
case 0:
・
・
・
}
}
って出来ないですかね?
訂正
>if (SaveDlg.DoModal())
if (SaveDlg.DoModal() == IDOK)
おおおおおう出来ました!
そうかm_ofnというメンバの中にあったのですね…
お二方とも助かりました_(._.)_
解決済みチェック忘れてました
ツイート | ![]() |