[BCB]關於滑鼠座標超過1024X768解析度擷取問題 |
尚未結案
|
小球
一般會員 發表:2 回覆:4 積分:1 註冊:2003-07-02 發送簡訊給我 |
|
HomeSound
中階會員 發表:44 回覆:178 積分:94 註冊:2002-08-31 發送簡訊給我 |
|
小球
一般會員 發表:2 回覆:4 積分:1 註冊:2003-07-02 發送簡訊給我 |
|
HomeSound
中階會員 發表:44 回覆:178 積分:94 註冊:2002-08-31 發送簡訊給我 |
圖片漫遊是指不用捲軸,以鍵盤或是滑鼠控制圖片的移動,從而在較小的顯示區域內可以瀏覽圖片
的任何部分。下面以滑鼠控制為例來說明。
(1)、在視窗中放置一個TPanel元件,調整好其尺寸。
(2)、在TPanel元件上放置一個TImage元件。
(3)、設定TImage元件的AutoSize屬性為True,Left屬性為0,Top屬性為0。
(4)、在TForm1中加兩個區域變數:int iX0,iY0;
(5)、對應TImage元件的OnMouseDown和OnMouseMove事件。
void __fastcall TForm1::Image1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { iX0 = X; iY0 = Y; } void __fastcall TForm1::Image1MouseMove (TObject *Sender, TShiftState Shift, int X, int Y) { int iDeltaX, iDeltaY; if(Shift.Contains(ssLeft)) { iDeltaX = X - iX0; iDeltaY = Y- iY0; if(iDeltaY) Image1->Left = iDeltaX; if(iDeltaY) Image1->Top = iDeltaY; } }(6)、執行時按住滑鼠左鍵拖動,圖片將跟隨移動。 (7)、如果以鍵盤控制,只需參考滑鼠控制方式,加入鍵盤控制即可。 (8)、實際應用時,根據需要加入邊界限制,確保圖片不會被移出顯示區域之外。 以上供您參考,改一下就可得到您要的座標吧! --==多看.多學.多聽==--
------
--==多看.多學.多聽==-- |
小球
一般會員 發表:2 回覆:4 積分:1 註冊:2003-07-02 發送簡訊給我 |
|
HomeSound
中階會員 發表:44 回覆:178 積分:94 註冊:2002-08-31 發送簡訊給我 |
小球您好:
int iX0,iY0; void __fastcall TForm1::Image1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) {iX0 = X; iY0 = Y; } //--------------------------------------------------------------------------- void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { int iDeltaX, iDeltaY; if(Shift.Contains(ssLeft)) { iDeltaX = X - iX0; iDeltaY = Y- iY0; if(iDeltaY) Image1->Left = iDeltaX; if(iDeltaY) Image1->Top = iDeltaY; } Label1->Caption=AnsiString(X) " , " AnsiString(Y); 或者是 Label1->Caption=AnsiString(iX0) " , " AnsiString(iX0); }都不會亂跳喲! --==多看.多學.多聽==--
------
--==多看.多學.多聽==-- |
小球
一般會員 發表:2 回覆:4 積分:1 註冊:2003-07-02 發送簡訊給我 |
|
HomeSound
中階會員 發表:44 回覆:178 積分:94 註冊:2002-08-31 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |