フォームで背景画像を繰り返して表示


ひろむ  2006-02-01 01:02:01  No: 129978

フォームの背景で画像を繰り返して表示したいのですが・・・。
イメージとしてはHTMLのようにしたいんです。
タグで言うとこんな感じ。
<body background="画像">

私の書いたコードは
標準モジュールに
Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long

Form_Load()に
    For y = 0 To 10
        For x = 0 To 10
            Call BitBlt(Form.hDC, x * SizeX, y * SizeY, SizeX, SizeY, PicM.hDC, 0, 0, vbSrcAnd)
            Call BitBlt(Form.hDC, x * SizeX, y * SizeY, SizeX, SizeY, Pic.hDC, 0, 0, vbSrcPaint)
        Next x
    Next y
SizeX、SizeYには画像のサイズが入っています。
    画像のサイズはWidthとHeightで取得
PicMはピクチャーボックスで背景が黒に設定してあります。
PicはLoadPictureで読み込んだ画像が入っています。


我龍院忠太  2006-02-01 02:07:33  No: 129979

Form.hDCはForm1.HDCですか?
Refreshされてるのかな。
Form_Loadに書かないで Form_Paint()に書けば
良いんじゃない。


花ちゃん  URL  2006-02-07 05:53:12  No: 129980

デスクトップのタイル状に並べて表示と同じ状態にフォームでしたいと
解釈してよいのでしょうか?
それなら、CreatePatternBrush でブラシを作成して、PatBlt API関数で
塗りつぶせばできます。
上記API関数をキーワードに検索すれば、サンプルも見つかるかと思います。


ひろむ  2006-02-17 23:11:16  No: 129981

>デスクトップのタイル状に並べて表示と同じ状態にフォームでしたいと
>解釈してよいのでしょうか?
はい。そういうことです。

花ちゃんさん。サンプルがなかなか見つかりません。
どこか紹介していただけませんか?


花ちゃん  2006-02-18 01:03:43  No: 129982

本当に探しましたか? 下記で一番最初にヒットしましたよ。

http://tinyurl.com/dgrta

#PS 私は貴方の検索係ではありません。検索位はご自分でして下さい。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加