DOBON.NET DOBON.NETプログラミング掲示板過去ログ

連続背景画像の取得法

環境/言語:[VB.NET 2003、WinXP SP2]
分類:[.NET]

お世話になっております。

フォームのBackgroundImageプロパティに画像を設定すると、勝手に連続した背景になりますが
この連続になった状態のイメージを取得できないものでしょうか。

やりたいことは、32x32の元画像をBackgroundImageに設定して連続描画をVBに任せてしまい、
フォーム上に設置されているコントロールに背景画像を薄く描画してやる、というものです。
しかし描画画像をMe.BackgroundImageプロパティで取得すると、元の32x32の画像が取得されてしまいます。

よろしくお願いします。
> フォームのBackgroundImageプロパティに画像を設定すると、勝手に連続した背景になりますが
> この連続になった状態のイメージを取得できないものでしょうか。

InvokePaintBackgroundメソッドを使ってできないでしょうか?InvokePaintBackgroundメソッドの使い方は「ピクチャボックスに表示されている画像を取得する」で説明しています。

ピクチャボックスに表示されている画像を取得する
http://dobon.net/vb/dotnet/graphics/invokepaint.html#invokepaint

ここではピクチャボックスの背景をInvokePaintBackgroundメソッドで取得していますが、これをフォームに変えてみてください。
>この連続になった状態のイメージを取得できないものでしょうか。

イメージの取得の話ではないのですが、VB.NET 2003で
Panel1のBackgroundImageに32x32Bmpを設定したら
連続描画というか、タイルパターンになりましたが、・・・
PictureBox1でも連続描画になりました。VB2005,2008もインストールしてるせいで変になっている・・とは思えないですが・・・
>管理人様
> InvokePaintBackgroundメソッドを使ってできないでしょうか
ご助言ありがとうございます。このヘルプは開いたことはあるのですが、
トップタイトルが「フォーム、コントロールの外観をキャプチャする」とあったので
関係ないと思いスルーしてしまっていました。
今会社なので自宅に戻ってから試してみます。

>y4yamaさん
VB.NET2003は元々の仕様でタイル配置になるようです。
配置方法を設定できるのはVB2005からみたいです。
InvokePaintBackgroundで無事背景画像を取得できました。
大変助かりました、ありがとうございます。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板