請問滑鼠移動,可否去干涉? |
尚未結案
|
harktrip
一般會員 發表:30 回覆:30 積分:12 註冊:2007-04-11 發送簡訊給我 |
|
gac
初階會員 發表:2 回覆:28 積分:26 註冊:2004-08-16 發送簡訊給我 |
<textarea class="cpp" rows="10" cols="60" name="code">
const int X_UNIT_PIXEL = 8;
const int Y_UNIT_PIXEL = 8;
const int THRESHOLD = 1; void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift,
int X, int Y)
{
static int iXOldPos = X;
static int iYOldPos = Y; if( iXOldPos == X && iYOldPos == Y )
return; if( (iXOldPos-X) >= THRESHOLD )
iXOldPos = X - (X % X_UNIT_PIXEL) - X_UNIT_PIXEL;
else if( (iXOldPos-X) <= -THRESHOLD )
iXOldPos = X - (X % X_UNIT_PIXEL) X_UNIT_PIXEL;
else
iXOldPos = X; if( (iYOldPos-Y) >= THRESHOLD )
iYOldPos = Y - (Y % Y_UNIT_PIXEL) - Y_UNIT_PIXEL;
else if( (iYOldPos-Y) <= -THRESHOLD )
iYOldPos = Y - (Y % Y_UNIT_PIXEL) Y_UNIT_PIXEL;
else
iYOldPos = Y; TPoint tNewPos = Image1->ClientToScreen(TPoint(iXOldPos, iYOldPos));
SetCursorPos(tNewPos.x, tNewPos.y);
}
</textarea> 試試看吧,好像沒有很順,但大概是像這樣吧?!
------
我..........還很嫩! |
harktrip
一般會員 發表:30 回覆:30 積分:12 註冊:2007-04-11 發送簡訊給我 |
|
gac
初階會員 發表:2 回覆:28 積分:26 註冊:2004-08-16 發送簡訊給我 |
<textarea class="cpp" rows="10" cols="60" name="code">const int X_UNIT_PIXEL = 8;
const int Y_UNIT_PIXEL = 8;
void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift,
int X, int Y)
{
static int s_iTrackX = 0, s_iTrackY = 0;
static int s_iSetupX = 0, s_iSetupY = 0;
if(abs(X-s_iTrackX) > X_UNIT_PIXEL)
s_iSetupX = s_iTrackX = X - (X % X_UNIT_PIXEL);
if(abs(Y-s_iTrackY) > Y_UNIT_PIXEL)
s_iSetupY = s_iTrackY = Y - (Y % Y_UNIT_PIXEL);
s_iTrackX = X - s_iSetupX;
s_iTrackY = Y - s_iSetupY;
s_iSetupX = (abs(s_iSetupX-s_iTrackX) >= X_UNIT_PIXEL)?(s_iTrackX-(s_iTrackX%X_UNIT_PIXEL)):s_iSetupX;
s_iSetupY = (abs(s_iSetupY-s_iTrackY) >= Y_UNIT_PIXEL)?(s_iTrackY-(s_iTrackY%Y_UNIT_PIXEL)):s_iSetupY;
TPoint tNewPos = Image1->ClientToScreen(TPoint(s_iSetupX, s_iSetupY));
SetCursorPos(tNewPos.x, tNewPos.y);
}
</textarea>
這樣應該有比前一版好了? 根據以前的經驗,在滑鼠移動太快的情況下, TImage :: On Mouse Move() 會收不到大部分的event, 所以在這裡面實作有先天上的限制。
------
我..........還很嫩! |
harktrip
一般會員 發表:30 回覆:30 積分:12 註冊:2007-04-11 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |