線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1124
推到 Plurk!
推到 Facebook!

攔截TPanel上的TShape的WM_PAINT

尚未結案
khaupe
一般會員


發表:28
回覆:25
積分:15
註冊:2003-06-30

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-07-24 00:29:15 IP:220.142.xxx.xxx 未訂閱
程式目的: 在TShape上用Canvas寫字 , 這不是重點 , 重點是我的Shape是在一個Panel上 , 而Panel在Form1上 目前寫法: 我抄了這一篇 http://delphi.ktop.com.tw/topic.php?topic_id=58271 若Shape直接放在Form1上 , 它確實可行. 但在我的情況卻不行. 因為Canvas是畫在Form1上 , 而非Shape. 事實上我也參考了這篇 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=23435 但他是new一個TBitmap , 畫在TBitmap後再貼上 , 這跟我要的不太一樣(其實符合需求啦 , 但我的壞脾氣又上來了 , 硬是要搞懂怎麼畫在Shape上) 程式碼如下: .h private: // User declarations TWndMethod ShapeParentWindowProc; void __fastcall ShapeHookWindowProc(TMessage &Message); .cpp //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { ShapeParentWindowProc = Shape1->WindowProc; Shape1->WindowProc = ShapeHookWindowProc ; } //--------------------------------------------------------------------------- void __fastcall TForm1::ShapeHookWindowProc(TMessage& Message){ ShapeParentWindowProc(Message); if(Message.Msg == WM_PAINT){ this->Canvas->Brush->Color = Shape1->Brush->Color; this->Canvas->TextOutA(Shape1->Left 1,Shape1->Top 1,"ShapeHookWindowProc"); } } //--------------------------------------------------------------------------- 請問這該如何解決呢???
justdo
高階會員


發表:2
回覆:359
積分:222
註冊:2004-08-17

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-07-24 10:05:01 IP:221.169.xxx.xxx 未訂閱
你引用的第二個 link 就很清楚的說明:我們無法直接取用Shape的Canvas 所以需要透過Shape的承載者的Canvas來繪圖 但是Panel也不提供Canvas供外界使用 透過Form畫出的文字則會被Panel遮蓋 so... 說說你的用途何在,再想想有沒有其他解決方案好了
khaupe
一般會員


發表:28
回覆:25
積分:15
註冊:2003-06-30

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-07-25 02:52:18 IP:218.165.xxx.xxx 未訂閱
引言: 你引用的第二個 link 就很清楚的說明:我們無法直接取用Shape的Canvas 所以需要透過Shape的承載者的Canvas來繪圖 但是Panel也不提供Canvas供外界使用 透過Form畫出的文字則會被Panel遮蓋 so... 說說你的用途何在,再想想有沒有其他解決方案好了
感謝您的說明 我昨天已用別的方法達到目的了 知道這樣的做法無解 , 我認為已經很有意義了
系統時間:2024-05-14 1:03:29
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!