List 7-38 FormPrintPreviewフォームのForm_Activateプロシージャ


  1: ' その時点で表示しているページ番号を示す変数
  2: Private g_Page As Long
  3: ' 最大ページ数を示す変数
  4: Private g_MaxPage As Long
  5: 
  6: Private Sub Form_Activate()
  7:     ' 画面が表示されようとしているときの処理
  8:     
  9:     ' PicDocの大きさをプリンタの大きさに合わせる
 10:     PicDoc.ScaleMode = Printer.ScaleMode
 11:     PicDoc.Width = Printer.Width
 12:     PicDoc.Height = Printer.Height
 13:     PicDoc.Font.Name = Printer.Font.Name
 14:     PicDoc.Font.Bold = Printer.Font.Bold
 15:     PicDoc.Font.Charset = Printer.Font.Charset
 16:     PicDoc.Font.Italic = Printer.Font.Italic
 17:     PicDoc.Font.Size = Printer.Font.Size
 18:     PicDoc.Font.Strikethrough = Printer.Font.Strikethrough
 19:     PicDoc.Font.Underline = Printer.Font.Underline
 20:     
 21:     ' 自動再描画をするように設定
 22:     PicDoc.AutoRedraw = True
 23:     ' PicDocピクチャボックスの単位をTwips単位に変更する
 24:     PicDoc.ScaleMode = vbTwips
 25:     
 26:     ' スクロールバーを合わせる
 27:     VScroll.Min = 0
 28:     VScroll.Max = PicDoc.Height - PicPreview.Height
 29:     VScroll.Value = 0
 30:     
 31:     HScroll.Min = 0
 32:     HScroll.Max = PicDoc.Width - PicPreview.Width
 33:     HScroll.Value = 0
 34:     
 35:     If (VScroll.Max <= 0) Then
 36:         VScroll.Enabled = False
 37:     Else
 38:         VScroll.Enabled = True
 39:         VScroll.LargeChange = VScroll.Max / 10
 40:         VScroll.SmallChange = VScroll.Max / 20
 41:     End If
 42:     
 43:     If (HScroll.Max <= 0) Then
 44:         HScroll.Enabled = False
 45:     Else
 46:         HScroll.Enabled = True
 47:         HScroll.LargeChange = HScroll.Max / 10
 48:         HScroll.SmallChange = HScroll.Max / 20
 49:     End If
 50:     
 51:     ' スクロールバーで設定された位置がPicPreviewピクチャボックスを
 52:     ' 通じて参照できるように,PicDocピクチャボックスの位置を移動する
 53:     PicDoc.Move -HScroll.Value, -VScroll.Value
 54:     
 55:     ' プレビュー画面の第1ページ目を描画する
 56:     g_Page = 1          ' その時点で表示しているページ番号
 57:     TXT_PAGE.Text = 1   ' ページ番号を示すテキストボックス
 58: 
 59:     ' 最大ページ番号を取得する
 60:     g_MaxPage = getMaxPage()
 61:     ' 取得した最大ページ番号をUpDown_Pageアップダウンコントロールの
 62:     ' 最大値として設定する
 63:     UpDown_Page.Max = g_MaxPage
 64:     ' 最大ページ数を表示しているラベル文字列を更新する
 65:     LABEL_MAXPAGE.Caption = "/" & g_MaxPage
 66: 
 67:     ' PicDocピクチャボックスを消去する
 68:     PicDoc.Cls
 69:     ' PicDocピクチャボックスにプレビュー画面を描画する
 70:     DrawPreview PicDoc, g_Page, g_Page
 71: End Sub