CPaintDC和CClientDC的区别
来源:互联网 发布:linux怎么进入命令模式 编辑:程序博客网 时间:2024/04/29 22:11
问题:CPaintDC和CClientDC的区别?
解答:
1:CClientDC(客户区设备上下文)用于客户区的输出,它在构造函数中封装了GetDC(),在析构函数中封装了ReleaseDC()函数。一般在响应非窗口重画消息(如键盘输入时绘制文本、鼠标绘图)绘图时要用到它。用法是:
CClientDC dc(this);//this一般指向本窗口或当前活动视图
dc.TextOut(10,10,str,str.GetLength());
//利用dc输出文本,如果是在CScrollView中使用,还要注意调
用OnPrepareDC(&dc)调整设备上下文的坐标。
2: CPaintDC用于响应窗口重绘消息(WM_PAINT)是的绘图输出。CPaintDC在构造函数中调用BeginPaint()取得设备上下文,在析构函数中调用EndPaint()释放设备上下文。EndPaint()除了释放设备上下文外,还负责从消息队列中清除WM_PAINT消息。因此,在处理窗口重画时,必须使用CPaintDC,否则WM_PAINT消息无法从消息队列中清除,将引起不断的窗口重画。CPaintDC也只能用在WM_PAINT消息处理之中。
此外: CPaintDC只能在WM_PAINT消息中使用, 用于有重画消息发出时才使用的内存设备环境, 而CClientDC和客户区相关,有重画消息发出时才使用的内存设备环境, 可在任何地方使用。具体的例子我还没有应用过,所以自己感觉还理解的不清楚。
- CPaintDC和CClientDC的区别
- CPaintDC和CClientDC的区别
- CClientDC和CPaintDC、CWindowsDC之间的联系和区别
- CPaintDC、CClientDC、CWindowDC和CMetaFileDC类的主要特点及区别
- CPaintDC、CClientDC、CWindowDC和CMetaFileDC类的主要特点及区别
- CPaintDC、CClientDC、CWindowDC和CMetaFileDC类的主要特点及区别
- CPaintDC、CClientDC、CWindowDC和CMetaFileDC类的主要特点及区别
- CPaintDC、CClientDC、CWindowDC和CMetaFileDC类的主要特点及区别
- CPaintDC、CClientDC、CWindowDC和CMetaFileDC类的主要特点及区别
- CPaintDC、CClientDC、CWindowDC和CMetaFileDC类的主要特点及区别
- CPaintDC、CClientDC、CWindowDC和CMetaFileDC类的主要特点及区别
- CPaintDC、CClientDC、CWindowDC和CMetaFileDC类的主要特点及区别
- CPaintDC、CClientDC、CWindowDC和CMetaFileDC类的主要特点及区别
- CPaintDC和CClientDC又有什么区别?
- 【vc】CPaintDC, CClientDC与CWindowDC的区别
- CPaintDC, CClientDC与CWindowDC的区别
- 转载---CPaintDC CClientDC CWindowDC的区别
- CPaintDC, CClientDC与CWindowDC的区别
- 跟着学习走
- posix 与 ansi c
- j2me手机游戏开发之俄罗斯方块--附完整源代码
- java中几种常用的排序算法
- 如何学java《转》
- CPaintDC和CClientDC的区别
- C#存储过程调用通用类
- 在VC6下使用Boost库的步骤
- Web基础--HTTP标头
- newsletter 参考地址
- Struts中ActionForward带参数跳转
- Vc++申请内存
- javascript实用收集(1)
- Struts上传方法