获得控件的句柄使用CDC在上面画图都做了些什么?求内幕(在线等)
时间:2011-12-27
来源:互联网
CDC *pDC = GetDC(mstatic.GetSafeWnd())后在上面绘制出来的吧。 那么CDC在static上面绘制空图片的时候,static是如何响应该绘制过程然后更新自己上面的图片的呢? 有通过OnPaint更新吗?还是其他的绘制函数? 求解?
为什么获得了控件的句柄后即便不在OnPaint函数里面,也可以在控件上作图并 更新?是怎么触发更新的? 百思不得其解。
作者: xiaoxiaoyu85 发布时间: 2011-12-27
作者: xiaoxiaoyu85 发布时间: 2011-12-27
2。 能得到它的DC,也能得到它的消息处理函数,你可以了解一些关于子类化的东西(SubclassWindow)
3。 当然了,也可以在整个窗口的OnPaint的时候,去绘制那个DC。
作者: healer_kx 发布时间: 2011-12-27
1。 有了句柄,就等于有了操纵这个控件的一切的权利
2。 能得到它的DC,也能得到它的消息处理函数,你可以了解一些关于子类化的东西(SubclassWindow)
3。 当然了,也可以在整个窗口的OnPaint的时候,去绘制那个DC。
多谢 了。
作者: xiaoxiaoyu85 发布时间: 2011-12-27
这个不太能理解,是创建一个子类吗?
得到DC后,在控件类外面去绘制,控件类里面,如何知道的呢?
作者: xiaoxiaoyu85 发布时间: 2011-12-27
DC就是用来绘图的。
OnPaint 是由系统调用 同时 系统提供DC来绘图。
GetDC的方式 是手工调用 同时手工申请DC来绘图。
这俩关系就跟栈内存和堆内存一样,都是内存只不过管理的方式不一样。
作者: hotpos 发布时间: 2011-12-27
处理的方式就是替换窗口的消息处理函数,可以通过SetWindowLong函数实现这个功能,所需的是窗口句柄不是DC句柄。
在外面用GetDC的方式绘制, 窗口是无法获知的。
你不能阻止别人在你的窗口上乱画。
作者: hotpos 发布时间: 2011-12-27
在外面用GetDC的方式绘制, 窗口是无法获知的。
你不能阻止别人在你的窗口上乱画。
哦,谢谢了,关键就是这个,等会结贴,呵呵
作者: xiaoxiaoyu85 发布时间: 2011-12-27
你不能阻止别人在你的窗口上乱画。
那别人画完自后,我是怎样及时响应更新的呢? 就是这里不理解。。
作者: xiaoxiaoyu85 发布时间: 2011-12-27
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28