對於取得可視元件ClassName的疑惑? |
尚未結案
|
g6101
高階會員 發表:22 回覆:129 積分:110 註冊:2002-06-15 發送簡訊給我 |
大家好:
我在Form擺上各式各樣可視元件,透過攔截訊息方來取得滑鼠所在位置之元件類別(ClassName)名稱,大部分都可以順利取得,但有些例外,如TSpeedButton、TShape、TLabel、TImage...等等,附上程式碼,有勞各位幫忙看看原因何在?方法錯了嗎?如何修改? .h
void __fastcall AppMessage(tagMSG &Msg, bool &Handled);
.cpp
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
Application->AppMessage;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::AppMessage(tagMSG &Msg, bool &Handled)
{
if(Msg.message==WM_MOUSEMOVE)
{
char name[256];
GetClassName(Msg.hwnd,name,256);
AnsiString str;
Caption = str.sprintf("滑鼠座標:(x=%d,y=%d);類別名稱:%s",Msg.pt.x,Msg.pt.y,name); }
}
發表人 - g6101 於 2004/03/24 22:45:54
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
g6101
高階會員 發表:22 回覆:129 積分:110 註冊:2002-06-15 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
axsoft
版主 發表:681 回覆:1056 積分:969 註冊:2002-03-13 發送簡訊給我 |
q6101: 試試:
Unit1.H //--------------------------------------------------------------------------- #ifndef Unit1H #define Unit1H //--------------------------------------------------------------------------- #include /*生活是一種藝術,用心生活才能享受生活*/ |
g6101
高階會員 發表:22 回覆:129 積分:110 註冊:2002-06-15 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
您好:
引言: 一個元件位置大小如何傳入TRect結構中?又如何與滑鼠座標做比對?有沒現成的方法或API可以用?我想您要的應該是像下面連結的討論 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=25078 取得滑鼠座標 GetCursorPos();假設您用之前的方式或得該元件的ClassName 自然會得到其Top, Left, Right, Bottom, 也就可以傳入TRect了 分數我想axsoft大哥和我都不會在意,但我個人認為axsoft大哥的範例非常有參考價值 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~> 發表人 - |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |