关于编写从TWinControl继承下来的控件

数字蛋糕 2000-09-25 02:48:00
我想问的是如何获得绘制控件时必须的DC?
如果在OnCreate时调用GetDC的话好像会出错。如果每次在WM_PAINT时调用的话又没效率。正规的控件是如何绘制自己的呢?或者说是在什么时候获得DC的呢?

而且我自己做了一个Panel控件,当我把它放到Form上的时候总是会不停的闪烁(不停的执行Paint),但是我在控件中只拦截了一个事件就是WM_PAINT,然后在WM_PAINT中调用Paint。实在想不出为什么会闪烁。
...全文
99 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
数字蛋糕 2000-09-26
  • 打赏
  • 举报
回复
多谢,问题已经解决。送上二十分:)
zengyufeng 2000-09-25
  • 打赏
  • 举报
回复
从 TCustomControl 继承
zengyufeng 2000-09-25
  • 打赏
  • 举报
回复
不要使用WM_PAINT绘制自己,应为 TWinControl 在 WM_PAINT 这个消息里做了很多处理,不单单是一个 Paint 而已,还包括被覆盖部分屏幕的保存及恢复等。你要绘制自己,重载 Paint 方法就可以了
数字蛋糕 2000-09-25
  • 打赏
  • 举报
回复
但是TWinControl没有Paint方法呀.不仅如此,连Canvas属性也没有的说.

5,931

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧