[リストへもどる]
一括表示

投稿時間:2002/12/16(Mon) 15:52
投稿者名:nd
Eメール:
URL :
タイトル:
画像の拡大縮小で。
はじめまして。
画像の拡大縮小を行うプログラムを作っているのですが、他の機能の面でPictureBoxを使っています。
このホームページの「PictureBox コントロールで画像を拡大・縮小」に載っていたサンプルを使ってみると拡大縮小はできるのですが、Picture2の上にもう一つPicture3を重ねて、Picture2を親Pictureとし、Picture3に画像を表示して、Pic2の範囲内で画像を拡大したいと考えています。
Pic2より大きくなった場合はスクロールバーを使おう考えています。
こういった場合はどのようにすればいいのでしょうか?
いろいろと試行錯誤してみましたが、どうにもなりませんでした。ご教授願います。

投稿時間:2002/12/16(Mon) 19:05
投稿者名:これ
URL :
タイトル:
Re: 画像の拡大縮小で。
> Pic2より大きくなった場合はスクロールバーを使おう考えています。
> こういった場合はどのようにすればいいのでしょうか?
> いろいろと試行錯誤してみましたが、どうにもなりませんでした。ご教授願います。

こんばんは。
画像のスクロールについてということでいいでしょうか?

Picture2が表示領域で
Picture3がスクロール対象としてPicture2の中にあります。
PictureBoxのScaleModeは 3 - Pixelに
AutoRedraw は True に
Picture3の方がサイズが大きいものとして考えます。

まず横スクロール
Picture3のWidthとPicture2のWidthの差を
HScrollのMaxに設定します

HScrollのChangeイベントでHScrollのValue分×-1
Picture3のLeftを変更します
Picture3.Left = -HScroll1.Value

縦スクロールも同様にHeightの差を求めて
VScrollで行います。

その他 細かい調整なんかは臨機応変にお願いします。

投稿時間:2002/12/16(Mon) 19:41
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: 画像の拡大縮小で。
コードを書いている内に先を越されてしまったようですね!
せっかくですので投稿しておきます。

> こういった場合はどのようにすればいいのでしょうか?

どの部分をですか?

> いろいろと試行錯誤してみましたが、どうにもなりませんでした。ご教授願います。

どこがでしょうか? 質問はもう少し具体的に的を絞ったものにして頂くと回答もし易いのですが。

一度下記を試して見て下さい。(ヒントだけという事で)

Option Explicit
Private Sub Form_Load()
    Picture1.Move 400, 400, 4000, 3800
    Picture2.Move 0, 0, 8000, 7000
    HScroll1.Move 400, 4170, 3970, 255
    VScroll1.Move 4370, 400, 255, 3770
    With Picture2
        .AutoRedraw = True
        .ScaleMode = vbCharacters  
        .CurrentX = 0
        .CurrentY = 7
        .FontSize = 12
    End With
    Picture2.Print "あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほ"
    With HScroll1
        .Max = 4000
        .Min = 0
        .SmallChange = 400
    End With
    With VScroll1
        .Max = 3200
        .Min = 0
        .SmallChange = 320
    End With
End Sub

Private Sub HScroll1_Change()
    Picture2.Left = -HScroll1.Value
End Sub

Private Sub VScroll1_Change()
    Picture2.Top = -VScroll1.Value
End Sub