| 
         
  | 
    
       
  | 
    ||||
| 
       Tips >  |     
    |||||
| 
       画面上のマウス座標を GetCursorPos で知る  |     
    
       更新 : 2010/02/19  |      
    ||||
|  
       | 
    |||||
| 
         
        
          | 
      ||
| 解説: アプリケーション内で座標を知りたい時、C++Builder のイベントなどから簡単に取得できます。 ではフォーム外の座標はどうでしょう? ScreenToClient? ClientToSc...? などとちょっと面倒なことを考えてしまいます。 こんなとき Win32API には GetCursorPos という便利な関数が用意されています。 BOOL GetCursorPos(LPPOINT lpPoint); 引数は、POINT 構造体のポインタ型です。 戻り値は、関数が成功したか失敗したか返ってきます。 使用例: 以下の例では、マウスの移動に伴って、画面上の座標値を Label1 の Caption に表示させています。 コンポーネントは、Label, Timer を適当に配置するだけです。 速く反応をさせたい場合は、Timer1 の Interval を 100ms に設定するなどしてください。 アプリケーションを起動すると、OnTimer イベントが動き、Label1 の Caption にマウスの座標値が表示されるようになります。 //------------------------------------------------------------------- void __fastcall TForm1::Timer1Timer(TObject *Sender) { //POINT 型の変数 TPoint pt; GetCursorPos(&pt); Label1->Caption = IntToStr(pt.x) + ", " + IntToStr(pt.y); } //-------------------------------------------------------------------  |