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

投稿日: 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をコメントアウトするのを忘れてました。


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

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

- Web Forum -