如何重繪TWinControl的外形。 |
尚未結案
|
Leway
一般會員 發表:43 回覆:71 積分:22 註冊:2003-07-29 發送簡訊給我 |
|
mustapha.wang
資深會員 發表:89 回覆:409 積分:274 註冊:2002-03-13 發送簡訊給我 |
|
Leway
一般會員 發表:43 回覆:71 積分:22 註冊:2003-07-29 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
mustapha.wang
資深會員 發表:89 回覆:409 積分:274 註冊:2002-03-13 發送簡訊給我 |
哦,没看清,TGraphicControl和TCustomerControl才有paint,hager是对的,看看TGraphicControl的实作就知道了
procedure TGraphicControl.WMPaint(var Message: TWMPaint); begin if Message.DC <> 0 then begin Canvas.Lock; try Canvas.Handle := Message.DC; try Paint; finally Canvas.Handle := 0; end; finally Canvas.Unlock; end; end; end;久病成良医--多试 千人之诺诺,不如一士之谔谔--兼听 發表人 - mustapha.wang 於 2004/03/08 20:31:12
------
江上何人初见月,江月何年初照人 |
jest0024
高階會員 發表:11 回覆:310 積分:224 註冊:2002-11-24 發送簡訊給我 |
|
Leway
一般會員 發表:43 回覆:71 積分:22 註冊:2003-07-29 發送簡訊給我 |
Hi:大家好,謝謝回答.
還有些疑問.
TWinControl類中提供了下面的重繪服務函數.
procedure WMPaint(var Message: TWMPaint); message WM_PAINT; //準備重繪控件區域
procedure PaintControls(DC: HDC; First: TControl); //重繪子控件區域
procedure PaintHandler(Var Message: TWMPaint); //剪裁重繪區域
procedure PaintWindow(DC: HDC); virtual; //子控件重繪使用 版主介紹的就是'不使用TWinControl的WMPaint函數,在派生類中自行攔截WM_Paint消息自行處理重繪的工作' 那麼我再問有沒有方法,無輪是TWinControl還是TGaphicControl都可實現的同一中重繪方法,而不要分開處理. =========================
為學日益,為道日損,損之又損,以致於無。為無為,而無不為。
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
Leway
一般會員 發表:43 回覆:71 積分:22 註冊:2003-07-29 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
如果小弟的觀念沒錯的話, 用 inherited 關鍵字
type TMyWinControl = class(TWinControl) private procedure WMPaint(var Message: TWMPaint); message WM_PAINT; end; // ... procedure TMyWinControl.WMPaint(var Message: TWMPaint); begin inherited // ... end;--- 屬於那自己生命的歌 不管是什麼顏色 |
Leway
一般會員 發表:43 回覆:71 積分:22 註冊:2003-07-29 發送簡訊給我 |
引言: 如果小弟的觀念沒錯的話, 用 inherited 關鍵字版主都稱小弟,那我這樣小弟的小弟更沒得混了。 謝謝回答,就是這個意思. ========================= 為學日益,為道日損,損之又損,以致於無。為無為,而無不為。type TMyWinControl = class(TWinControl) private procedure WMPaint(var Message: TWMPaint); message WM_PAINT; end; // ... procedure TMyWinControl.WMPaint(var Message: TWMPaint); begin inherited // ... end;--- 屬於那自己生命的歌 不管是什麼顏色 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |