投稿日 | : 2003/07/20(Sun) 19:08 |
投稿者 | : 花ちゃん |
Eメール | : |
URL | : |
タイトル | : Re^3: BitBltの使い方 |
> > Private Declare Function BitBlt Lib "GDI32" _
> > (ByVal hDCDest As Long, ByVal XDest As Long, _
> > ByVal YDest As Long, ByVal nWidth As Long, _
> > ByVal nHeight As Long, ByVal hDCSrc As Long, _
> > ByVal XSrc As Long, ByVal YSrc As Long, ByVal dwRop As Long) As Long
> > Private Const SRCCOPY = &HCC0020
> > Private Sub Command1_Click()
> > BitBlt Picture1.hDC, -5&, -5&, Picture2.ScaleWidth, Picture2.ScaleHeight, Picture2.hDC, 0&, 0&, SRCCOPY
> > Picture1.Refresh
> > End Sub
> 早速ありがとうございます。
> この、「−5&」が思うとおり(=左にずれない)にならないのです。
> みかけ、「+5&」でもないようなのです(+方向と思いますが)。
> なにか、どこかを調べればよいのでしょうか。
Picture2に表示されている画像を上方向と左方向にずらしてPicture1に表示したいと
言う事ではないのですか?
ずらして表示するという事は、元々 XY座標が 0,0 の位置に表示されているのですから
-5,-5 にすれば上方向に5ピクセル、左方向に5ピクセルずれて(その分表示されない)
表示されます。
Pictureコントロールのプロパティを何も設定しないで下記を先ほどのコードに追加して下さい。
-5,-5 で効果が解りづらいなら -10,-10に変更して見て下さい。
Private Sub Form_Load()
Picture1.Move 500, 500, 3000, 3000
Picture1.AutoRedraw = True
Picture2.Move 4000, 500, 3000, 3000
Picture2.AutoRedraw = True
Picture2.Picture = LoadPicture("c:\test.bmp")
End Sub