formの画像をbmpもしくはpngで保存する方法

[戻る]
satoshi 2016/09/25(日) 23:37:06
windows7 vc++2010です。

今作成中のアプリで通信ログデータのほかに通信結果のリザルトを画面表示するようにしていま
す。そのリザルト画面をbmpもしくはpngで保存したいと思っております。
保存方法についてご教示いただければと思います。
すみませんが宜しくお願い致します。

瀬戸っぷ [E-Mail] 2016/09/26(月) 09:31:07
「ウィンドウ キャプチャ BMP保存 API」とかで検索するとそこそこ見つかるかと。
formということはC++/CLIなんですかね?

Win32APIで…だと
http://www.sm.rim.or.jp/~shishido/wincap.html
とか。(クライアント領域だけなのでタイトルバーやメニューバーなどは含まれませんが)

なべ使い 2016/09/27(火) 20:37:17
瀬戸っぷさん

ご回答ありがとうございます。
APIは、ちょっと難しいのでC++/CLIで保存方法について教えて頂けないでしょうか。
すみませんが宜しくお願い致します。

瀬戸っぷ [E-Mail] 2016/09/28(水) 10:00:00
C++/CLIは触っていないので細かいところは不明ですが…
.NET Frameworkってことで、
http://dobon.net/vb/dotnet/graphics/invokepaint.html
辺りでVB.NetかC#のサンプルがあります。

ITO 2016/09/30(金) 12:09:49
>APIは、ちょっと難しいのでC++/CLIで保存方法について教えて頂けないでしょうか。
瀬戸っぷさんの例をもとにc#でくんだ方がいいです。
「C++/CLI」はMSでも見かけなくなってますね。

なべ使い 2016/10/04(火) 09:51:37
[[解決]]
瀬戸っぷさん、ITOさんありがとうございました。
既存のプロジェクトを直すと大変になるので、教えて頂いたサイトの例c#を
置き換えて作成できました。
//コントロールの外観を描画するBitmapの作成
System::Drawing::Bitmap^ bmp = gcnew Bitmap(this->Width, this->Height);
//キャプチャする
this->DrawToBitmap(bmp, System::Drawing::Rectangle(0, 0, this->Width, this-
>Height));
//ファイルに保存する
bmp->Save(Convert::ToString(textBox1->Text)+"\\result_"+Now_time+".png");
//後始末
delete bmp;

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