投稿日 | : 2004/06/03(Thu) 13:03 |
投稿者 | : Renard |
Eメール | : |
URL | : |
タイトル | : Re^6: PictureBoxでズーム・スクロールする |
> こちらも申し訳ありませんでした、業務が進まずイライラしていました。
> で、ある程度理解でき目標の形に近い形になってきました。サンプル助かりました。
> 以下のコードでは再描画の際のチラつきが気になるのですが何か妙案はないでしょうか?
> Private Sub swichPicture()
Picture2.Visible = False '<-----追加
> 'イニシャライズ中は逃げる
略
'DoEvents '<------コメントアウト
> End With
Picture2.Visible = True '<-----追加
> End Sub
> Private Sub Form_Load()
>
> '画像ファイルの設定
> Set Picture3.Picture = LoadPicture("イメージファイル")
>
> '--位置等のイニシャライズ------
> iniFlg = True
> With HScroll1
> .Min = 1
> .Max = 20
> .Value = 1
> End With
> With HScroll2
> .Min = 1
> .Max = 20
> .Value = 10
> End With
> With VScroll1
> .Min = 1
> .Max = 20
> .Value = 1
> End With
> Picture1.BackColor = &HFFFFFF
> Picture2.BackColor = &HFFFFFF
Picture2.AutoRedraw = True '<-----追加
> With Picture3
> .Visible = False
> .AutoSize = True
> End With
> With Form1
> .Height = 7500
> .Width = 8500
> End With
> iniFlg = False
> '------------------------------
>
> 'オリジナルのサイズを格納
> lngOrgHeight = Picture3.ScaleHeight
> lngOrgWidth = Picture3.ScaleWidth
> 'スクロールバーで一度に進む距離を設定
> pointHeight = lngOrgHeight / 20
> pointWidth = lngOrgWidth / 20
>
> Call swichPicture
>
> End Sub
これでちらつきは押さえられると思います。
あと、私見ですがスクロールのイベントは
Changeではなく、Scrollイベントの方が、いいかもしれません。
スクロールバーをドラッグしたときに、リアルタイムで動きます。
【修正】
すみません。
swichPictureプロシージャのDoEventsをコメントアウトするのを忘れてました。