乖 乖乖兔 Unregistered / Unconfirmed GUEST, unregistred user! 2001-09-06 #1 怎样重载 TBitBtn 的 Paint 过程,我想重画一个按钮边框。 不知是否还有其它办法做到。 我不要 TSpeedButton 类,因为此类不能用键盘得到焦点!
S sonie Unregistered / Unconfirmed GUEST, unregistred user! 2001-09-06 #2 type TMyBitBtn=class(TBitBtn) public procedure paint;override; ......... ???
L lha Unregistered / Unconfirmed GUEST, unregistred user! 2001-09-06 #3 补充一点, 把TBitBtn Paint部分的 Source Copy 过来,再改一下就可以了。
P Pan Ying Unregistered / Unconfirmed GUEST, unregistred user! 2001-09-06 #4 不要copy过来,用inherited最好,继承以前的代码这才是面向对象。
乖 乖乖兔 Unregistered / Unconfirmed GUEST, unregistred user! 2001-09-06 #5 可是 TBitBtn 哪有 Paint 这个方法呀。 只有DrawItem,但好象这个方法不能重载。
S smilboy Unregistered / Unconfirmed GUEST, unregistred user! 2001-09-26 #6 procedure TForm1.Button2Click(Sender: TObject); var c:TCanvas; begin c:=TControlCanvas.Create; TControlCanvas(c).Control:=Button2; c.Brush.Style:=bsClear; c.Pen.Color:=clBlue; c.Rectangle(5,5,15,15); c.Free; end;
procedure TForm1.Button2Click(Sender: TObject); var c:TCanvas; begin c:=TControlCanvas.Create; TControlCanvas(c).Control:=Button2; c.Brush.Style:=bsClear; c.Pen.Color:=clBlue; c.Rectangle(5,5,15,15); c.Free; end;
T the3rd Unregistered / Unconfirmed GUEST, unregistred user! 2001-09-29 #7 首先把TBitBtn的源码看懂了,然后将他的源码拷贝出来,在它Paint的地方Paint多好, 还可以多学点其他的东西。
B balaschen Unregistered / Unconfirmed GUEST, unregistred user! 2001-10-08 #8 重写CN_DRAWITEM消息函数,这样 procedure CNDrawItem(var Message: TWMDrawItem); message CN_DRAWITEM; . . . procedure CNDrawItem(var Message: TWMDrawItem); begin inherited;//这句就会自动调用DrawItem //在这里做你想做的事 end;
重写CN_DRAWITEM消息函数,这样 procedure CNDrawItem(var Message: TWMDrawItem); message CN_DRAWITEM; . . . procedure CNDrawItem(var Message: TWMDrawItem); begin inherited;//这句就会自动调用DrawItem //在这里做你想做的事 end;