ゲーム制作でDXライブラリィを使わせていただいております。
ウィンドウモードでプログラムを使用し、ウィンドウをモニター画面から左へはみ出すように移動させると、
マウスカーソルがウィンドウの中にあるにもかかわらず、
GetMousePoint関数で所得したマウスの「X座標がマイナス」になってしまいます。
マウス座標がマイナスにならないような対策方法はありますでしょうか?
以下、現象が出るサンプルプログラムです。
・OS:Window7,64ビット
・開発ツール:Microsoft Visual C++ 2010 Express
・グラボ:GEFORCE GTX460
// ウィンドウをモニター画面から左へはみ出すように移動させると、
// マウス座標がマイナスになってしまうサンプル
// マウスの左ボタンクリックで終了
// 2013.06.09 CYARACON
#include "DxLib.h"
#include <stdlib.h>
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
int MouseX , MouseY ;
int mouse_bt ; // マウスボタン
ChangeWindowMode( TRUE ) ; // ウインドウモードに変更
if( DxLib_Init() == -1 ) // DXライブラリ初期化処理
{
return -1; // エラー終了
}
SetMouseDispFlag( TRUE ) ; // マウスを表示状態にする
do
{
GetMousePoint( &MouseX , &MouseY ) ; // マウスの位置を取得
mouse_bt = GetMouseInput() ; // マウスのボタン状態
// 画面消去
SetBackgroundColor( 0, 0, 0 ); // 背景色設定
ClearDrawScreen() ; // 画面を消去
// マウス座標表示
SetFontSize( 50 ) ;
DrawFormatString( 0, 0, GetColor( 255, 0, 0 ), "MouseX,MouseY:%d,%d", MouseX, MouseY ) ;
// 裏画面の内容を表画面に反映させる
ScreenFlip() ;
} while ( ( mouse_bt & MOUSE_INPUT_LEFT ) == 0 ) ;
DxLib_End() ; // DXライブラリ使用の終了処理
exit(0) ; // ソフトの終了
}