ペーン座標系でマウスカーソルの位置を取得する

更新しました Dec 1, 2018

使用製品

Software

  • LabVIEW Full

その他

主なソフトウェア: LabVIEW Full Development System 2013

問題

LabVIEWでは、マウスを初期化VIおよび入力データを取得VI(軸情報水平および垂直座標出力)を使用してマウスカーソルを読み取る位置は、PC画面座標系上の位置で、PC画面の左上隅を起点とします。どのようにしてペーン上の灰色の点(基準点)に起点を持つペーン座標系上のマウスカーソル位置を得ることができますか?

解決策

3つの座標系があります。
  1. ローカルペーン座標系: 原点は、フロントパネル内のペーン上の灰色の点です。ほとんどのフロントパネルオブジェクトにとって、プロパティノードで読み取られた位置プロパティはこの点からの相対座標です。詳細は、LabVIEWヘルプ: 位置プロパティを参照してください。
     
  2. グローバルフロントパネル座標系: 原点はペーンの左上隅です。
     
  3. グローバル画面座標系: 原点はPC画面の左上隅です。マウスを初期化VIおよび入力データを取得VIで読み取られるマウスカーソル位置は、この点からの相対座標です。

マウスカーソル位置をほとんどのフロントパネルオブジェクトの位置に関連付けるには、ペーン座標系に対するマウスカーソル位置が必要です。次の手順では、プログラム的に計算する方法を説明します。

1. VIサーバリファレンスプログラミング>>アプリケーション制御>>VIサーバリファレンス)を配置し、左クリックしてこのVI>>ペーン>>ペーンを選択します。VIサーバリファレンスのペーン出力端子を右クリックして、作成>>ペーンクラスのプロパティ>>原点を選択して、リファレンスを配線します。プロパティノードから出力されたクラスタに含まれる水平および垂直座標を読み取ります。この値は、ペーンの左上隅の位置からのペーンの座標系に相対します。



2. 別のVIサーバリファレンスを配置してこのVIを右クリックし、作成>>VIクラスのプロパティ>>フロントパネルウィンドウ>>パネルの境界を選択して、リファレンスを配線します。プロパティノードから出力されたクラスタに含まれる左および上の座標を読み取ります。この値は、ペーンの左上隅の位置からのスクリーン座標系に相対します。



3. 水平から左を減算し、垂直から上を減算します。これは、スクリーン座標系に対するペーンの原点位置です。

4. マウスを初期化VI(コネクティビティ>>入力デバイス制御>>マウスを初期化)と入力データを取得VI(コネクティビティ>>入力デバイス制御>>入力データを取得)を配線します。入力データを取得VIの軸情報クラスタ出力に含まれる水平および垂直座標を読み取ります。

5. マウスの座標から前の手順の値を追加します。これにより、ペーン座標系に対するマウスカーソルの位置になります。




この最後の手順では、下図のQ4座標値が正(+x、+y)であるのに対して、他のセクタは負の成分を持ちますので、この最後の手順で値を追加します。つまり、Q1(+x、-y)、Q2(-x、-y)、Q3(-x、+y)になります。

この記事はお役に立ちましたか?

いいえ