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