サポート > PC-MAPPING ヒント集 > スクリプト > イベント駆動型スクリプティング@ [拡大縮小]
イベント駆動型スクリプティング@ [拡大縮小]
ここでは、プロジェクト内スクリプトを使用し、KeyDownイベントに対して「拡大・縮小」を変更するスクリプトを記述しました。
■ サンプル
サンプル[script3.zip(約2KB)]をダウンロードする
拡大縮小.js:サンプルJScript
拡大縮小.vbs:サンプルVBScript

《内容》
  • テンキーの「+」を押したとき、マウスの示す位置を表示領域の中心となるように拡大表示します。
  • テンキーの「−」を押したとき、マウスの示す位置を表示領域の中心となるように縮小表示します。

■ 解説
function OnKeyDown(lngPara1, lngPara2, lngPara3, lngPara4)
{

}

は、キーボードキーを押したときに発生するイベントです。
これを「このプロジェクトのスクリプト」に記述し、「通知するイベント」チェックボックスをONにします。

OnKeyDownを実行すると、第一引数として「キーコード」を返します。「+」は「107」、「−」は「109」です。
キーコードに関しては、PC-MAPPINGヘルプの「仮想キーコード表」をご覧下さい(不明な場合は、第一引数をメッセージで表示し、ご確認下さい)。
「+」が押されたときはOnPlusDown、「−」が押されたときはOnMinusDownを見ています。
例えば、「+」が押されOnPlusDownが実行されたときは、PcmAutoViewクラスのSetCenter()メソッドでOnKeyDownの第三、四引数で取得したマウスのXY座標を入力し、そのXY座標を中心位置とする表示領域へ移動します。
また、PcmAutoViewクラスのViewScaleDenomiプロパティで拡大します。
なお、押すキーによっては(F8などのファンクションキーは文字入力されませんが、+やAなどは文字入力されます)文字入力されるためベクターウィンドウからコマンドバーへフォーカスが移動してしまうため、イベントが実行されなくなってしまいます。
この文字入力を防ぐためにOnCharの戻り値を0以外(ここでは1)にしてコマンドバーへフォーカスが移動するのを防いでいます。

▼ 現在の表示領域
地番「6-6」の画地へマウスを移動します。

▼ 「+」を押した場合

▼ 「−」を押した場合

となります。
※ダウンロードしたファイルは、[プロジェクト]リボン-[プロジェクト設定]-[プロジェクト]の[スクリプト]パネルにコピーし、通知するイベントにチェックを入れて下さい。
また、このファイルにサンプルプロジェクトはありません。
使用されるプロジェクトの状態に合わせてスクリプト内の拡大・縮小率を変更して下さい。