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

7.4.7 顧客情報の印刷処理
●余白処理
 次に,ユーザーによって余白の値が変更されたときの処理を実装する。といっても,すでにDrawPreviewプロシージャでは,TXT_UPTXT_DOWNTXT_LEFTTXT_RIGHTという各テキストボックスから余白の値を取得してそれを利用するような処理をしてある(List 7-42の168〜207行目)。よって,実装しなければならないのは,ユーザーが余白を変更して[適用]ボタン(BTN_APPLYボタン)を押したときに,その新しい余白値を使って再描画する処理だけである。実際にその処理を実装すると,List 7-44のようになる。

 余白の設定が変わった場合には,描画領域が変わることになるわけだから,最大ページ数も変わってくる。そこでまず6行目でgetMaxPageプロシージャ(List 7-43)を呼び出して,最大ページ数を再計算する。その後,10行目でPicDocピクチャボックスをクリアし,11行目でDrawPreviewプロシージャを呼び出すことで,プレビュー画面を再描画する。これにより,ユーザーが[適用]ボタンを押したときに,新しい余白の設定でプレビュー画面を再描画するという処理が実現できる。

●プレビュー表示ページの変更
 ところで,Fig.7-45に示したように,今回はTXT_PAGEテキストボックスで表示したいページをユーザーが入力することによって,何ページ目をプレビュー表示するのかを指定できるようにする。そのためには,TXT_PAGEテキストボックスの内容が変わったときに,DrawPreviewプロシージャを呼び出し,指定されたページを再描画すればよい。

 テキストボックスの内容が変わったときにはChangeイベントが発生するので,TXT_PAGEテキストボックスの内容が変わったときの処理はTXT_PAGE_Changeプロシージャに記述すればよい。実際に実装したものがList 7-45である。

 List 7-45の処理は非常に簡単で,まずIsNumeric関数を使ってTXT_PAGEテキストボックスに入力された値が数値であるかどうかを確認し,数値であり,かつ最大ページ数を越えていないならば,DrawPreviewプロシージャを使ってそのページをPicDocピクチャボックスに再描画しているだけである。

Prev 54/134 Next