视图绘画机理

 

 

视图绘画机理

 

在VC++的文档、视结构中,
CView的OnDraw函数用于实现绝大部分图形绘制的工作。
如果用户改变窗口尺寸,或者显示隐藏的区域,
OnDraw函数都将被调用来重画窗口。并且,
当程序文档中的数据发生改变时,
一般必须通过调用视图的Invalidate(或InvalidateRect)
成员函数来通知Windows所发生的改变,
对Invalidate的调用也会触发对OnDraw函数的调用。
正因为OnDraw函数被频繁调用,所以在其执行时,
每次都刷新填充一次视图客户区域,便会使屏幕不稳定
,产生闪烁现象。

其实在程序调用OnDraw函数之前,会触发一个Windows消息:
WM_ERASEBKGND,以擦除视图刷新区域。在缺省情况下,
Windows系统使用视图窗口注册时窗口类中的成员hbrBackground
所描述的画刷来擦除屏幕,这一般会将屏幕刷新成COLOR_WINDOW
所对应的颜色。因此,在OnDraw函数中设置背景颜色的执行
过程是这样的:先将屏幕刷新成COLOR_WINDOW所对应的颜色,
接着又在OnDraw函数中填充其他颜色,
这正是产生屏幕闪烁的根本原因。


OnCtlColor ( )函数,当对话框准备显示一个控件时,
调用此函数,它返回一个HBRUSH,用于绘制控件背景

 

(我写的一点有关学习VC 的总结,望志同道合者能指点迷津)。

 

 

阅读终点,创作起航,您可以撰写心得或摘录文章要点写篇博文。去创作
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在ClickHouse中,视图(Views)是一种虚拟的表,它是基于一个或多个源表的查询结果。视图可以简化复杂的查询,并提供一种更方便的方式来访问和使用数据。 以下是创建和使用视图的一般步骤: 1. 创建视图: 使用CREATE VIEW语句来创建视图。在语句中指定视图的名称、列以及查询语句,该查询语句定义了视图的数据来源。例如: ``` CREATE VIEW my_view AS SELECT column1, column2 FROM table1 WHERE condition; ``` 在上述示例中,创建了一个名为 "my_view" 的视图,它从 "table1" 表中选择了 "column1" 和 "column2" 列,并应用了一个条件。 2. 使用视图: 一旦视图被创建,你可以像使用任何其他表一样使用它。你可以对视图执行查询,使用它作为子查询,或者在其他查询中引用它。例如: ``` SELECT * FROM my_view WHERE column1 = 'value'; ``` 上述示例中,从 "my_view" 视图中选择所有行,其中 "column1" 的值等于 'value'。 3. 修改视图: 如果你需要修改已存在的视图,可以使用ALTER VIEW语句。例如,你可以添加、删除或更改视图的列、更改视图的查询等。 ``` ALTER VIEW my_view MODIFY COLUMN column1 NewDataType; ``` 上述示例中,修改了 "my_view" 视图的 "column1" 列的数据类型。 4. 删除视图: 如果你不再需要某个视图,可以使用DROP VIEW语句来删除它。例如: ``` DROP VIEW my_view; ``` 上述示例中,删除了名为 "my_view" 的视图。 请注意,视图只是一个虚拟的表,并不实际存储数据。它们只是基于查询结果生成的,并且在查询时动态计算。因此,当源表的数据发生变化时,视图的内容也会随之变化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lumg

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值