社区
Delphi
帖子详情
在Delphi中有哪些情况会导致OnPaint事件的发生呢?
jackeyqiu
2007-06-26 10:42:26
在Delphi中有哪些情况会导致OnPaint事件的发生呢?
...全文
566
8
打赏
收藏
在Delphi中有哪些情况会导致OnPaint事件的发生呢?
在Delphi中有哪些情况会导致OnPaint事件的发生呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
火龙岛主
2010-03-09
打赏
举报
回复
例如:TForm;
Paint事件触发;
procedure TCustomForm.Paint;
begin
if Assigned(FOnPaint) then
FOnPaint
(Self);
end;
Paint由PaintWindow事件触发
procedure TCustomForm.PaintWindow(DC: HDC);
begin
FCanvas.Lock;
try
FCanvas.Handle := DC;
try
if FDesigner <> nil then FDesigner.PaintGrid else
Paint
;
finally
FCanvas.Handle := 0;
end;
finally
FCanvas.Unlock;
end;
end;
PaintWindow由PaintHandler触发
最终由
procedure WMPaint(var Message: TWMPaint); message WM_PAINT; 消息触发;
也就是说只要放生了WM_PAIN消息并且OnPaint也赋值了,那么就会触发OnPaint;
InceptKnowledge
2010-03-09
打赏
举报
回复
最直接的,就是最大化,最小化,
byteh
2010-03-09
打赏
举报
回复
几乎可以这么说,只要你的界面处于可视状态就会触发!
www_OK2002_com
2010-03-09
打赏
举报
回复
~~~我也正在找呢...
SQLDebug_Fan
2010-03-09
打赏
举报
回复
Windows产生WM_PAIN消息会重画,你用Invalidate也会导致重画
何鲁青
2007-06-26
打赏
举报
回复
show
refresh
updata
unactive
active
and ...
cnzzlp
2007-06-26
打赏
举报
回复
可以在onPaint事件写个
OutputDebugString(Pchar('Paint'));
可以在EventLog窗口看出输出信息
cnzzlp
2007-06-26
打赏
举报
回复
resize,窗体部分被遮住又重新显示,从不可见到可见...
楼下补充...
Delphi
中窗体
事件
发生
顺序
一个窗体产生时,
发生
这些
事件
次序 一个窗体消失时,
发生
事件
的次序 1、OnActivate 当窗体被初始激活时,就
会
发生
OnActivate
事件
,当初始创建窗体或者用户从一个窗体切换到另一个窗体时,就可能激活窗体,Application对象也有一个OnActivate
事件
,当用户从一个应用程序切换到另一个应用程序时,就
会
产生此
事件
。 2、OnClose和OnCloseQuery ...
delphi
中form创建及销毁
事件
的处理顺序
Delphi
中Form有非常多的
事件
,他们每个
Delphi
Canvas绘图时
发生
闪烁的解决办法
与Invalidate的区别:Canvas.Refresh
会
强制立即重绘,而 Invalidate 方法
会
标记控件为“需要重绘”,但不
会
立即执行重绘操作。总的来说,Canvas.Refresh 是一个可以在特定
情况
下使用的工具,但要谨慎使用以避免出现不必要的闪烁问题。手动触发重绘:通常
情况
下,控件
会
在需要重绘时自动调用 On
Paint
事件
,但是如果你希望在特定时刻手动触发重绘,可以使用 Canvas.Refresh。组件在绘图时可能
会
出现闪烁的问题,这通常是由于重绘频率过高或者未使用双缓冲技术
导致
的。
Delphi
中窗体的
事件
Delphi
中窗体的
事件
Form窗体可以响应各种各样的时间,在Object Inspector的Events页面中罗列了一大堆,如下图: 下面将要列出一些常用的
事件
。 1、OnActivate 当窗体被初始激活时,就
会
发生
OnActivate
事件
,当初始创建窗体或者用户从一个窗体切换到另一个窗体时,就可能激活窗体,Application对象也有一个OnActivate
事件
,当...
OnDraw与On
Paint
对比
On
Paint
是WM_
PAINT
消息的消息处理函数,在On
Paint
中调用OnDraw,一般来说,用户自己的绘图代码应放在OnDraw中。 On
Paint
()是CWnd的类成员,负责响应WM_
PAINT
消息。OnDraw()是CVIEW的成员函数,没有响应消息的功能.当视图变得无效时(包括大小的改变,移动,被遮盖等等),Windows发送WM_
PAINT
消息。该视图的On
Paint
处理函数
Delphi
5,392
社区成员
262,731
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章