自分は、マウスの右ボタンでドラッグしている間、四角形を描画し、
右ボタンを離すと四角形が消えるプログラムを作りたいです。
左ボタンでは上手くできたのですが、
MOUSE_INPUT_LEFTの部分をMOUSE_INPUT_RIGHTに変えたら
始点が(x,y)=(0,0)で固定されてしまいます。
何がいけないのか解りませんが、この機能を右ボタンで動くようにしたいです。
Cの知識は初心者です。
OSはWindowsXP、
コンパイラはVisual C++ 2010 Expless、
ライブラリはDXライブラリ です。
宜しくお願いします。
#include "DxLib.h"
typedef struct{
int x;
int y; //座標
}start_t,end_t;
start_t start;
end_t end;
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
ChangeWindowMode(TRUE), DxLib_Init(), SetDrawScreen( DX_SCREEN_BACK ); //ウィンドウモード変更,初期化,裏画面設定
int x,y,Mouse,White;
White = GetColor( 255 , 255 , 255 ) ; // 白色の値を取得
// while( 裏画面を表画面に反映, メッセージ処理, 画面クリア )
while( !ScreenFlip() && !ProcessMessage() && !ClearDrawScreen() ){
Mouse = GetMouseInput(); //マウスの入力状態取得
GetMousePoint( &x, &y ); //マウスの座標取得
if( (Mouse & MOUSE_INPUT_LEFT) == 1 ){ //マウスの左ボタンが押されたら
// マウスカーソルの位置を取得して、始点として保存しておく
start.x = x;
start.y = y;
}
else if( (Mouse & MOUSE_INPUT_LEFT) == 0 ){ //マウスの左ボタンが離されたなら
end.x = x;
end.y = y;
continue;
}
DrawBox ( start.x, start.y, end.x, end.y , White , FALSE) ; // 四角形を描画
}
DxLib_End();
return 0;
}