VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 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


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -