社区
界面
帖子详情
一个窗口如何有多个DC
pshchao
2010-11-29 02:59:20
如题,我想让一个窗口有多个DC
我想实现的功能是:我在一个窗口中一个DC负责绘制界面,另一个DC负责从右下角慢慢浮上来然后显示有新的消息,停留1分
后,在慢慢浮下去
在onpaint中有一个DC这个DC负责绘制界面,然后我想在另外创建一个DC是专门用来消息提示的
当我调用INVALIDATE的时候onpaint执行,这样刷新了界面
但是我想另外一个DC不跟着刷新,我希望是每个DC有不同的刷新函数。
我是一个窗口,不想用多窗口实现。 请各位大牛们指导指导
...全文
169
5
打赏
收藏
一个窗口如何有多个DC
如题,我想让一个窗口有多个DC 我想实现的功能是:我在一个窗口中一个DC负责绘制界面,另一个DC负责从右下角慢慢浮上来然后显示有新的消息,停留1分 后,在慢慢浮下去 在onpaint中有一个DC这个DC负责绘制界面,然后我想在另外创建一个DC是专门用来消息提示的 当我调用INVALIDATE的时候onpaint执行,这样刷新了界面 但是我想另外一个DC不跟着刷新,我希望是每个DC有不同的刷新函数。 我是一个窗口,不想用多窗口实现。 请各位大牛们指导指导
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
pshchao
2010-11-29
打赏
举报
回复
[Quote=引用 3 楼 visualeleven 的回复:]
我在一个窗口中一个DC负责绘制界面,另一个DC负责从右下角慢慢浮上来然后显示有新的消息,停留1分
-------------------------
非模态对话框,SetTimer+OnTimer
[/Quote]
也可以试试,都是大牛们啊
pshchao
2010-11-29
打赏
举报
回复
[Quote=引用 2 楼 m_tornado 的回复:]
用一个CDC Memdc来管理你的提示消息,需要显示的时候把MemDC贴到窗口dc上~
[/Quote]
这个可以试试。
Eleven
2010-11-29
打赏
举报
回复
我在一个窗口中一个DC负责绘制界面,另一个DC负责从右下角慢慢浮上来然后显示有新的消息,停留1分
-------------------------
非模态对话框,SetTimer+OnTimer
m_tornado
2010-11-29
打赏
举报
回复
用一个CDC Memdc来管理你的提示消息,需要显示的时候把MemDC贴到窗口dc上~
用户 昵称
2010-11-29
打赏
举报
回复
有多少个dc都得合并到窗口这个dc上。
内存
DC
和屏幕
DC
转自:http://blog.csdn.net/sunnyorange/article/details/6590793 首先明白
DC
的含义,Windows不允许程序员直接访问硬件,它对屏幕的操作是通过环境设备,也就是
DC
来完成的。
DC
就是设备上下文的意思,设备上下文就是当前的这个窗体的一些属性,譬如说他使用的画刷,画笔等等。也就是说,它并不是将像素直接输出到设备上,而是将图绘制到由设备描述表表示
MiniGUI源码分析——
DC
分析
熟悉windows的朋友都了解,GDI对外提供
一个
H
DC
的
DC
句柄。
DC
为(Device Context)的缩写,表示
一个
抽象的设备当前绘图情况。 一般情况下,屏幕、打印设备、内存像素都可以抽象出
一个
H
DC
句柄。
一个
设备可以抽象
多个
H
DC
句柄,每个H
DC
句柄,都有自己独立的上下文信息。 在MiniGUI中,从
窗口
创建的
DC
都称为硬件
DC
,而从位图或者其他
DC
衍生的
DC
,称为Mem
DC
。 注
使用内存
DC
防止
窗口
闪烁
在使用VC开发图形相关的应用程序时,常常需要使用MFC的C
DC
类直接把图形画在
窗口
上。这通常是通过响应Windows的WM_PAINT消息实现的。如果要画的图形比较复杂,或者比较大,那么画图过程可能会造成
窗口
的闪烁。当
窗口
调整大小时,这种闪烁由为明显。 解决
窗口
闪烁问题的有效办法就是使用内存
DC
,也称为缓冲
DC
。在内存中准备
一个
和
窗口
DC
相同属性的
DC
,在这个内存
DC
上执行画图操作
内存
DC
也有视口和
窗口
的
相信经常做图形可视化的人都知道双缓冲概念,那是优化刷新显示的技术。实际上,它还有其他用途。 一般的程序当中经常有缩略图、鹰眼、或者打印输出等。有人依靠截屏保存为图片来实现。这是可行的。不过缺点是再明显不过的了。当视图区有其他
窗口
遮挡时,截屏会把一些非显示区内容掺杂进来,效果不理想。 然而利用内存
DC
绘制可以避免这一缺点。如果将内存
DC
内容拷贝到屏幕
DC
上就属于双缓冲了。
win32
窗口
双缓冲技术 内存
DC
绘制直线 --- Mem
DC
win32
窗口
双缓冲技术 内存
DC
绘制直线 测试环境: win7 64 位 vs2013建立
一个
win32 应用程序 ,空项目,名称是 HelloMem
DC
, 在项目中添加源文件 HelloMem
DC
.cpp : 内容如下:#include <windows.h> #include <stdlib.h>
界面
15,979
社区成员
115,896
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章