![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
こんにちは。
VC++&MFCとWMF(Windows Meta File)について質問させて下さい。
私は、8年前くらいに学生の研究で普通のテキストエディタ等でC++のコーディングをしていたことがあるのですが、このたび仕事でVisual StudioとMFCを使用してWindowsプログラムの改修をすることになりました。
ネットで検索したり書籍で調べたのですがなかなか的を得ず、質問させて頂こうと思いました。
改修対象はVC++6.0で書かれたプログラムです。
至ってシンプルで、以下の機能を有します。
・グラフ等の描画内容が書かれたファイルを読み込み、自ウィンドウ内に表示
・上記で表示されたものを印刷
今回これに、「画面表示したものをWMFフォーマットのファイルに落とす」という機能を加えようと思っています。
現在のソースコードは、おそらく自動生成されたであろう「xxxView」というクラスの「OnDraw」というメソッドから、ファイルを読み出す関数を呼び出したりして、引数で貰ったデバイスコンテキスト(pDC)でお絵描きをしています。
メニューバーから「保存」が選択されると保存ダイアログを表示し、WMFファイルに保存するようにしたいのですが、以下の点をご教示頂きたくお願い致します。
(1) CDCで描いたものをWMFファイルに保存するにはどうすれば良いのか。
(2) メニューのコマンドID(というのでしょうか…)に対応する処理(今回実装する処理)はどこに書くのが妥当なのか。
(3) メニューのコマンドIDには用意されているもの(ID_FILE_SAVE_ASなど)が色々あるが、今回それらは用いずに新たに自分で定義するべきなのか。
(4) その他、ご指摘やアドバイス、参考となりそうな書籍など。
お手数ですが、ご回答頂けると幸いです。
宜しくお願いします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
(1) だけですが、
CMetaFileDC インスタンス作成
↓
CMetaFileDC::Create
↓
いろいろ描画
↓
CMetaFileDC::Close
といった流れになるようです。
http://msdn.microsoft.com/ja-jp/library/427wezx1 …
この回答への補足
2週間経ちましたので、そろそろ締め切ろうと思います。
メニューのコマンドは、「xxxView」クラスに新しいメソッドを設けて、そこで受けることにしました。
メタファイルのデバイスコンテキスト作成は出来たのですが、現状、CDCで描画した内容をビットマップでメタファイルのデバイスコンテキストにコピーしてくることしか出来てません。
また改めて質問内容を変えて投稿させて頂きます。
お騒がせ致しました。
ご回答ありがとうございます。
CMetaFileDCのインスタンスを作成して、CDCのインスタンスを作成してOnDraw関数を呼び出し、戻ってきたらCMetaFileDCのBitBltメソッドでCDCをコピー。という手順になるのでしょうか?。。
現在割り込みの仕事が入り本作業はペンディングしているのですが、月曜日に試してみるように致します。
ありがとうございました。
引き続き、皆様のご回答お待ちしております。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでファイルの最終更新...
-
VBAで、強制保存してブックを閉...
-
AccessVBAでレポートをPDFで出力
-
VB6.0でエクセル保存する時の保...
-
Excel VBAでほかのアプリケーシ...
-
読み取り専用ファイルを上書き...
-
Pivot table で集計されたデー...
-
Excel VBAで作成したマクロをxl...
-
vbaでIEの名前を付けて保存(A)...
-
至急教えてください!プログラ...
-
エクセルVBAについて
-
YAHAMA RTXシリーズのコマンド...
-
onedriveで同期解除をしたら、...
-
vlan internal allocation poli...
-
TXTファイルを上書き保存する前...
-
teratarmでコマンド入力すると...
-
マイドキュメントのフォルダの...
-
ls であるファイル以外を表示し...
-
セントボックスの中身が消えた!
-
共有しているファイルを削除し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでファイルの最終更新...
-
読み取り専用ファイルを上書き...
-
Excel VBAでほかのアプリケーシ...
-
Excel VBAで作成したマクロをxl...
-
VBAで、強制保存してブックを閉...
-
Pivot table で集計されたデー...
-
コマンドプロンプトでデスクト...
-
VBScriptで日本語が変です
-
エクセルで「名前を付けて保存...
-
vbaでIEの名前を付けて保存(A)...
-
タイトルバーやメニューバーの...
-
VBScriptでのSaveAsについて
-
VB.NETでEXCELファイルを開き、...
-
VBA メモ帳の上書き保存がしたい
-
意味不明のタグが挿入されてい...
-
エクセル:マクロ:保存時に連...
-
ファイルのダウンロード保存先...
-
AccessVBAでレポートをPDFで出力
-
EclipseでJavaScriptファイルの...
-
「名前をつけてファイルを保存...
おすすめ情報