すみません、初心者です。質問されて下さい。
今、フォーム上に丸みのある長方形の画像を幾つか置いて、移動できる
ようにしているのですが、その画像同士が重なるとき、背景が透明でない
ため、角が白く下の画像が、消えてしまいます。
利用しているのは、BMP画像です。GIF画像を利用しようと思ったのですが、
マウスイベントを使った時に一瞬、消えてしまうためBMPで我慢しています。
よろしけれが、BMPの背景を透明にするヒントを教えて頂けないでしょうか?
どんな事でもいいので、よろしくお願いします。
説明すると長くなりそうなので
TransparentBlt
AlphaBlend
BitBlt
あたりで検索してみてください。ちなみにAPIです。
返事が大変遅れまして、すみませんでした。
APIでWindowsの全OSで使えるのはBitBlt関数ぐらいみたい?ですが、
どうも、うまくいかないので質問を変えさせて下さい。
前回も書かせて頂いたのですが、背景が透明なGif画像をImageで表示させ
ドラッグで移動する時、白黒に点滅します。
これは、Imageのドラッグ時は、そうなるのでしょうか?
それとも、自分のプログラムが悪いのでしょうか?
どうか、宜しければ、原因を教えて下さい。
Dim Drg As Boolean
Dim DrX As Single, DrY As Single
Private Sub Image1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
If Button = 1 Then
If Drg = False Then
Drg = True
DrX = x: DrY = y
Image1.ZOrder 0
End If
End If
End Sub
Private Sub Image1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
FH = Form1.Height
FW = Form1.Width
Gh = Image1.Height
Gw = Image1.Width
If Button = 1 Then
If Drg Then
XX = Image1.Left + x - DrX
YY = Image1.Top + y - DrY
If XX > 0 And YY > 0 Then
If XX < FW - Gw And YY < FH - Gh Then
Image1.Move XX, YY
End If
End If
End If
End If
End Sub
Private Sub Image1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
If Button = 1 Then
Drg = False
End If
End Sub
答えになってるかわかりませんが、
以前、私が背景の透明化を必要とした時、以下のサイトを参考にしました。
http://dobon.net/vb/dotnet/graphics/maketransparent.html
良かったら参考にどうぞ。
とおりすがりのおやじさん、返事ありがとうございます。
もう記入してかなり経つので返事はないと思っていました。
本当にありがとうございます。
今回の件ですが、BitBltでなんとかなりました。イベントが多くて
大変でしたけど。[^-^]
返事してくれたHPアドレスは、VB.Netでしたが、あれぐらい簡単に
書けたら楽なんですけどねー。
それでは、無事解決です。色々ありがとうございました。
ツイート | ![]() |