ファイル種類の指定

[戻る]
gg 2010/05/10(月) 15:25:51
ggです。
初歩な質問です。

[ファイルを開く]ダイアローグに
ファイル種類:すべてファイル*.*になっています、
*.Txt *.jpgを追加したいのですが、

どこに設定すればいいでしょうか。

よろしくお願いします。

環境 WinXP 。Net2002 MFC使用

gg 2010/05/10(月) 15:55:46
自分で解決しました。
OnOpenFileをオーバーライドすることで
無事に解決しました。
あるソフトをみたら、
OnOpenFileをオーバーライドしていないですが、
どういう方法でやっているかわかりません。

よろしくお願いします。

maru 2010/05/10(月) 16:21:45
OnOpenDocument()の既存の実装ではドキュメントテンプレート文字列からドキュメント
の拡張子をとってきて表示するからではないでしょうか。

gg 2010/05/10(月) 16:49:23
maruさん、ご回答ありがとう。

探した見たら、リソースファイルにあります。

STRINGTABLE PRELOAD DISCARDABLE 
BEGIN
    IDR_MAINFRAME           "Rdres\n\nRdres\nEXE(*exe)\n.Exe\nEXE File\nEXE File"
END

なぜそこに設定しているか、手動で書いたの?
*.JPG を追加すると、どう書けばいいでしょうか。

maru 2010/05/10(月) 17:24:19
IDR_MAINFRAMEにドキュメントテンプレート文字列が設定されているってことはSDI
でプロジェクトを作成作成したようですね。

> なぜそこに設定しているか、手動で書いたの?
プロジェクトを作成した時にダイアログでドキュメントテンプレート文字列を設定した
はずです。でも *.exeとなっているべきところが、*exeとなっているので手動で修正し
てしまったのではないでしょうか。

> *.JPG を追加すると、どう書けばいいでしょうか。
SDIでは複数種類のドキュメントを扱うことはできません。 
またMDIでも複数のドキュメント種類(ドキュメントテンプレート)を扱うには既存の
実装では出来ません。適切な関数をオーバーライドする必要があります。

gg 2010/05/11(火) 08:31:01
[[解決]]
maruさん
ご回答ありがとう。

>IDR_MAINFRAMEにドキュメントテンプレート文字列が設定されているってことはSDI
>でプロジェクトを作成作成したようですね。
やってみたら、その通りです。

>でも *.exeとなっているべきところが、*exeとなっているので手動で修正し
>てしまったのではないでしょうか。
自分で、弄ったのですが、すみませんでした。

>SDIでは複数種類のドキュメントを扱うことはできません。 
>・・・適切な関数をオーバーライドする必要があります。
なるほど、わかりました。

丁寧な説明、ありがとうございました。

古いスレッドには追加発言できません。