Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2341841
  • 博文数量: 816
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-17 17:57
文章分类

全部博文(816)

文章存档

2011年(1)

2008年(815)

分类:

2008-12-17 18:04:25

TCustomControl 在 TWinControl 的基础上只添加了一个 Canvas 属性 和 一个 Paint 方法,和你的要求完全一样。
可以通过继承 TCustomControl 定义控件,省去了很多的麻烦。

//---------------------------------------------------------------------------
class PACKAGE TMyWinControl : public TCustomControl
{
private:
    TNotifyEvent FUserPaint;
protected:
    virtual void __fastcall Paint(void);
public:
    __property Canvas;
    __fastcall TMyWinControl(TComponent* Owner);
__published:
    __property TNotifyEvent OnPaint = { read = FUserPaint, write = FUserPaint };
};
//---------------------------------------------------------------------------
__fastcall TMyWinControl::TMyWinControl(TComponent* Owner)
    : TCustomControl(Owner)
{
  FUserPaint = NULL;
}
//---------------------------------------------------------------------------
void __fastcall TMyWinControl::Paint(void)
{
  TCustomControl::Paint();
  if(FUserPaint)FUserPaint(this);
}
//---------------------------------------------------------------------------

--------------------next---------------------

阅读(1198) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~