この特集のトップページへ
Chapter 7:プレゼンテーション層の構築

7.4.7 顧客情報の印刷処理
●印刷プレビューフォームが表示されたときの処理

FormPrintPreviewフォームのサイズが変更されたときの処理
 次に,FormPrintPreviewフォームのサイズが変更されたときの処理を実装する。すでに,「●フォームのサイズに部品を揃える」でも説明したように,フォームのサイズ変更に合わせてフォーム上のコントロールの大きさを変更するには,Resizeイベント内でその処理をすればよい。

 FormPrintPreviewフォームには,Fig.7-45で示したように多数のコントロールが配置されている。しかし,PicDocピクチャボックスはPicPreviewピクチャボックスが親になっているのでPicPreviewピクチャボックスのサイズだけ調整すればよく,また,各種ボタンやテキストボックスはFrameNaviフレームが親になっているので,それだけを調整すればよい。よって,サイズや位置を調整しなければならないのは,PicPreviewピクチャボックス,VScroll垂直スクロールバー,HScroll水平スクロールバー,FrameNaviフレームという4つのコントロールとなる。

 実際にこれらの4つのコントロールのサイズと位置を変更するようResizeイベントの処理を実装したものが,List 7-39である。

 List 7-39は,次のように各コンポーネントのサイズと位置を変更する。

  • VScroll垂直スクロールバーをフォームの右上に合わせる

  • PicPreviewピクチャボックスを左上に揃える

  • FrameNaviフレームをフォーム下に合わせ,フォームの横一杯に広げる

  • HScroll水平スクロールバーをFrameNaviフレームのすぐ上にくっつける

  • PicPreviewピクチャボックスの幅と高さをできるだけ広げる

 なお,36行目以降は,スクロールバーの最大値を再設定するための処理である。36行目よりもまえの部分では,フォームの大きさが変更されると,PicPreviewピクチャボックスの大きさを変更するという処理をしているわけだが,Fig.7-50で示したようにPicPreviewピクチャボックスの大きさに伴いスクロールする範囲が変わってくるため,スクロールバーの最大値の再設定が必要になる。

○スクロール処理
 最後に,スクロールバーがユーザーによってクリックされるなどして,値が変わったときに,その値に応じてスクロールする処理を実装しておく。

 Fig.7-50で示したように,PicDocピクチャボックスはPicPreviewピクチャボックスの上に載っており,PicDocピクチャの表示位置を変更することによってスクロールを実現する。すでにList 7-38の解説でも説明したように,スクロールバーの値だけ負の方向に移動した位置にPicDocピクチャボックスを移動することにより,スクロールが実現される。

 ユーザーがスクロールバーを操作してスクロールバーの値が変更されたときには,Changeイベントが発生する。そこで,VScroll垂直スクロールバーのChangeイベントの処理と,HScroll水平スクロールバーのChangeイベントの処理を,それぞれList 7-40List 7-41に示すように実装する。

 List 7-40PicDocピクチャボックスのTopプロパティを変更してY座標の位置を変更し,List 7-41PicDocピクチャボックスのLeftプロパティを変更してX座標の位置を変更するというものである。

Prev 46/134 Next