マウスカーソルの位置情報を取得するには,GetMousePoint関数を利用します.
この関数の定義は以下のようになっています.
int GetMousePoint( int *XBuf, int *YBuf );
XBuf, YBufにはマウスカーソルのx座標,y座標が代入されます.
マウスカーソルの座標を取得する際,マウスカーソルが表示されて
いなければ意味がありません.
そこで,SetMouseDispFlag関数を利用して,マウス表示の有無を設定する必要があります.
int SetMouseDispFlag( int DispFlag );
DispFlagにはTRUE又はFALSEを渡します.
TRUEでマウスカーソルが表示されます.
では,これらの関数を利用して,マウスの座標を取得するプログラムを
作成してみましょう.
foundation-15.cpp
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
int white, posX, posY;
//ウィンドウモードで起動
ChangeWindowMode( TRUE );
//DXライブラリ初期化
if( DxLib_Init() == -1 ) {
return -1;
}
SetDrawScreen( DX_SCREEN_BACK );
//マウスを表示状態にする
SetMouseDispFlag( TRUE );
//白色取得
white = GetColor( 255, 255, 255 );
//ESCAPEキーが押されるまでプログラムを続行
while( CheckHitKey( KEY_INPUT_ESCAPE ) == 0 ) {
ClearDrawScreen();
if( ProcessMessage() == -1 ) {
break;
}
//マウスポインタの座標を取得
GetMousePoint( &posX, &posY );
//座標を表示
DrawFormatString( 20, 20, white, "マウスの座標( %d, %d )", posX, posY );
//裏画面反映
ScreenFlip();
}
//DXライブラリ終了処理
DxLib_End();
return 0;
}
このプログラムの実行結果は,下図となります.