ホーム
|
アプリケーション | Tips | ダウンロード | プログラム
| コラム

CBアプリ工房


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);
}
//-------------------------------------------------------------------



[ ホーム | ページトップ | ブック | リンク | サイトマップ ]
Copyright(c) 2003 Shibu All rights reserved.