Graphicsの生成について

[戻る]
なおぞう 2015/12/15(火) 21:59:34
VisualStudio2013で開発しています。
ご回答戴けますようお願いします。

Graphics の生成で、
Graphics g = コントロール.CreateGraphics();
Graphics g1 = Graphics.FromImage(Image);
の2通りがありますが、

IntPtr ghdc = g.GetHdc();
と、
IntPtr g1hdc = g.GetHdc();

それぞれのHDCをファイルにセーブすると、g1hdcは真っ黒になってしまいました。
この2つの生成方法で、HDCの内容にどのような差異があるのでしょうか?

教えていただけますようお願いします。

YuO [E-Mail] 2015/12/17(木) 12:05:08
どうやって「HDC」 (=Handle to Device Context) をファイルにセーブして,確認したのでしょ
うか。
Device Contextの中身を保存しても通常は何ら意味がないと思うのですが。

なおぞう 2015/12/17(木) 13:54:43
>YuOさん

ご返答ありがとうございます。
C#内で、 作成したそれぞれのHDCを、VC++のほうへ持って行って、
HDCをBMPにセーブする関数で確認しました。

コントロール.CreateGraphics()から取り出したHDCは、コントロールの画像がセーブされ、
Grphics.FromImage(Image)から取り出したHDCは、真っ黒でセーブされました。(Imageが
表示されるのを期待していたのですが)

HDCのビットマップファイルへのセーブはネットで見つけた関数を利用しました。
#HDCをセーブするコードはC++なのでここでは省略します。
http://www13.plala.or.jp/kymats/study/MULTIMEDIA/save_ddb.html

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