請問關於MouseMove屬性的問題 |
答題得分者是:Windyboy
|
xdio2
一般會員 發表:60 回覆:29 積分:17 註冊:2004-07-23 發送簡訊給我 |
假使今天程式中我要表現滑鼠移動一個圖片Image1 若我已經在MouseDown中設定,px=X,py=Y (記住按下滑鼠鈕時的座標)
我又在MouseMove屬性中,寫
(1)
Image1->Left=Image1->Left (X-px);
Image1->Top= Image1->Top (Y-py); 跟
(2)
Image1->Left= X;
Image1->Top= Y;
差在哪呢 怎麼(1)(2)的寫法讓我跑出的結果怪怪的
我覺得應該都是一樣意思阿
請大大指教一下,多謝~ 發表人 - taishyang 於 2004/10/13 23:30:47
|
Windyboy
版主 發表:7 回覆:119 積分:210 註冊:2002-11-07 發送簡訊給我 |
Hi xdio2: 參考看看.^^
void __fastcall TForm1::Image1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { if(Shift.Contains(ssLeft)) { px = X; py = Y; } } //--------------------------------------------------------------------------- void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { if(Shift.Contains(ssLeft)) { Image1->Left=Image1->Left (X-px); Image1->Top= Image1->Top (Y-py); } } //----------------------------------------------------------------------------------------------------- ~天下本無事 庸人自擾之~ |
Windyboy
版主 發表:7 回覆:119 積分:210 註冊:2002-11-07 發送簡訊給我 |
補充一下, 使用你(2)的方法, 會覺得怪怪的, 應該是指說在MouseMove中記錄的X, Y座標 是Mouse在Image1中的座標, 所以如果你把Image1的位置改成MouseMove中的X, Y 就不正確, 如此一來圖就會亂亂跑, 例如你的Mouse現在在圖中的(10, 10), 而你的Image1在FORM中的(100, 100) Mouse移動到(11, 11)時, 圖片應該移動到的位置應該是Form上的(101, 101), 而不是Form上的(11, 11), 所以正確的說, 不只是怪怪的, 而是根本就不對啊..呵呵 --------------------------
~天下本無事 庸人自擾之~
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |