在TDrawGrid 中MouseMove時變更滑鼠游標? |
尚未結案
|
ikk
尊榮會員 發表:4 回覆:413 積分:768 註冊:2003-06-30 發送簡訊給我 |
大家好:
我使用TDrawGrid 並將DragMode 設定為dmManual(手動模式),
在MouseMove中我偵測使用者是否有按下左鍵,以表示現在是拖曳狀態,
此時我想要改變滑鼠游標為crDrag(拖曳圖示), 但圖沒改變, 直到放開後才會改變,不知如何能即時改變此游標?
因為設計上的問題,所以不想用dmAutomatic(自動模式),但游標卻無法即時更換.
我使用下列語法:
DrawGrid->Cursor = crDrag;
------
FPGA驗證, FPGA開發平台, http://smims.com |
allenchan
資深會員 發表:10 回覆:306 積分:283 註冊:2004-01-06 發送簡訊給我 |
|
ikk
尊榮會員 發表:4 回覆:413 積分:768 註冊:2003-06-30 發送簡訊給我 |
|
allenchan
資深會員 發表:10 回覆:306 積分:283 註冊:2004-01-06 發送簡訊給我 |
void __fastcall TForm1::Label1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { TPoint P; if (Button == mbLeft) { Label1->Cursor = crDrag; GetCursorPos(&P); P = ScreenToClient(P); Perform(WM_LBUTTONUP, 0, (int)&P); } } |
ikk
尊榮會員 發表:4 回覆:413 積分:768 註冊:2003-06-30 發送簡訊給我 |
|
allenchan
資深會員 發表:10 回覆:306 積分:283 註冊:2004-01-06 發送簡訊給我 |
我想那您可能改變 Screen->Cursor 來試試看,程式大致如下:
void __fastcall TForm1::Memo1MouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { TPoint P; if (blMouseDown) /* 請改成您判斷滑鼠被按下的條件 */ { /* 如果滑鼠在 Memo1 範圍內就變圖示 */ if (X > 0 && X < Memo1->Width && Y > 0 && Y < Memo1->Height) Screen->Cursor = crDrag; /* 如果滑鼠超出 Memo1 範圍就變回來 */ else Screen->Cursor = crDefault; } } |
ikk
尊榮會員 發表:4 回覆:413 積分:768 註冊:2003-06-30 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |