社区
C++ Builder
帖子详情
请问OnPaint与Paint的区别...
gloom
2001-08-29 09:42:50
请问什么时候会触发OnPaint事件?是不是改变对象的可见区域时触发的?Paint呢?
对象创建后是不是只触发Paint事件,而不触发OnPaint事件?
...全文
278
20
打赏
收藏
请问OnPaint与Paint的区别...
请问什么时候会触发OnPaint事件?是不是改变对象的可见区域时触发的?Paint呢? 对象创建后是不是只触发Paint事件,而不触发OnPaint事件?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
20 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
gloom
2001-09-01
打赏
举报
回复
我不能算完全明白,但也差不多了吧,结账
gloom
2001-09-01
打赏
举报
回复
谢谢大家了,
Nepalon
2001-08-31
打赏
举报
回复
onpaint是一个事件。而paint是一个消息,当重画一个窗体,或我们常用的刷新时,就要由窗口过程来调用paint这个消息。偶之拙见,是刚从windows程序设计中看的
whitelion
2001-08-30
打赏
举报
回复
up
fastcall
2001-08-30
打赏
举报
回复
下面这个例子应该可以帮助理解:
class TForm1 : public TForm
{
__published: // IDE-managed Components
TPaintBox *PaintBox1;
TButton *Button1;
TEdit *Edit1;
void __fastcall FormPaint(TObject *Sender);
void __fastcall PaintBox1Paint(TObject *Sender);
void __fastcall Button1Click(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner);
};
void __fastcall TForm1::FormPaint(TObject *Sender)
{
Edit1->Text ="FormPaint";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::PaintBox1Paint(TObject *Sender)
{
Edit1->Text ="PaintBox1Paint;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
PaintBox1->OnPaint = PaintBox1Paint;
Form1->OnPaint =FormPant;
}
//---------------------------------------------------------------------------
HEROIN
2001-08-30
打赏
举报
回复
OnPaint只是一个事件,他通知有Paint这个事情发生了(应该说是完成了)
而Paint是用来执行界面绘制的
gloom
2001-08-30
打赏
举报
回复
那个主窗体即有OnPaint也有Paint啊,怎么区别
fastcall
2001-08-30
打赏
举报
回复
Onpaint和paint()是有区别的:
例如:Lable 是 From1上的一个元件则OnPint指向From1上的一个成员函数,即她是一个函数指针她只向父窗口同类型的函数,而Paint()是Lable 的一个成员函数,他处理WM_PAINT消息并负责调用OnPaint 函数指针所指向的函数。WM_PAINT是在窗口刷新时产生的
gloom
2001-08-29
打赏
举报
回复
好像是我在提问耶...
孩皮妞野
2001-08-29
打赏
举报
回复
基本同意gloom, OnPaint()是事件, Paint是一个相当于C++虚函数的东西。DYNAMIC = dynamic, 关于其意义可以参考帮助, 大体上dynamic 会首先查找类中有否定义,否则就
严派生链上溯,直到找到一个定义。
gloom
2001-08-29
打赏
举报
回复
谢了,ccaolii(ccaolii)
ccaolii
2001-08-29
打赏
举报
回复
生日快乐 gloom(忧郁的海风)
gloom
2001-08-29
打赏
举报
回复
下面是原型,它是专门响应WM_PAINT消息的,这个Paint应该不算是事件,是一个函数,要想自己重载的话要加上DYNAMIC.我也不知道说得对不对,
DYNAMIC void __fastcall Paint();
HEROIN
2001-08-29
打赏
举报
回复
惭愧,我不知道除了OnPaint外还有个Paint事件,能不能告诉我在那里?我怎找不到?
另外,OnPaint并非创建时触发,正如你说的,是改变对象的可见区域时触发
gloom
2001-08-29
打赏
举报
回复
哪些情况会触发WM_Paint?移动对象会触发吗?
gloom
2001-08-29
打赏
举报
回复
要上班啊,怎么能不看程序啊
greenhandsecond
2001-08-29
打赏
举报
回复
我在过生日的时候就不肯看程序,更不肯想问题。
不过你的问题挺有创意的。
gqxs
2001-08-29
打赏
举报
回复
学习
gloom
2001-08-29
打赏
举报
回复
我在做ActiveX时就可以重载Paint()
HEROIN
2001-08-29
打赏
举报
回复
虚拟函数也不必一定要DYNAMIC
不过除非你自己写控件,否则你是无法重载Paint的
C#中
paint
()与
On
paint
()的
区别
代码如下:protected virtual
On
Paint
(
Paint
EventArgs e){ if(
paint
!= null){
paint
(this,e);}}如果直接重写
on
paint
,
paint
就会失效;这样就不会失效: 代码如下:protected override
On
Paint
(
Paint
EventArgs e){ base.
On
Paint
(e); //自己的代码} (一)重绘时候经常会用到
On
Paint
()和
Paint
,它们有什么
区别
呢? 1.
On
Paint
方法是对一个控件来说的;而
Paint
事件是对一个控件对象来说的。它们中前者相当于是类的一个成员函数,而后者相当于
on_
paint
.rar_
on
paint
函数_visual c
在vs2005下面写的绘图函数,简单实用
On
Paint
重绘窗体
重写窗体重绘事件 protected override void
On
Paint
(
Paint
EventArgs e) { e.Graphics.DrawImage((Image)pic,new Point(0,0));//重绘窗体 }
TreeView With
Paint
_robin1.rar
开发环境VS2010+,开发语言c#,全部源码,本程序主要用于TreeView的应用
Delphi中
On
Paint
事件使用实例
摘要:Delphi源码,系统相关,
On
Paint
事件 Delphi中
On
Paint
事件使用实例,点击按钮可看到效果,一个简单的Delphi初学者实例,仅供参考。
C++ Builder
13,825
社区成员
102,678
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章