《MFC windows程序设计》中关于GDI对象的选定
来源:互联网 发布:广西玉林软件 编辑:程序博客网 时间:2024/06/09 23:55
2.2.12
取消对GDI对象的选定
void CMainWindow::OnPaint
{
CPaintDC dc(this);
CBrush brush(RGB(255, 0, 0));
dc.SelectObject(&brush);
dc.Ellipse(0, 0, 200, 100);
}
析构顺序:先Cbrush再Cpaint;
大部分windows编程人员习惯上首先保存每种对象类型首次调用SelectObject时返回的指针,然后用这个指针重选默认对象。
CPen pen(PS_SOLID, 1, RGB(255, 0, 0));
CPen *pOldPen = dc.SelectObject(&pen);
CBrush brush(RGB(255, 0, 0));
CBrush* pOldBrush = dc.SelectObject(&brush);
.
.
.
dc.SelectObject(pOldPen);
dc.SelectObject(pOldBrush);
还有一种同样有效的方法是将备用对象选入设备描述表以取代之前选入的对象。
CPen pen(PS_SOLID, 1, RGB(255, 0, 0));
dc.SelectObject(&pen);
CBrush brush;
dc.SelectObject(&brush);
.
.
.
dc.SelectStockObject(BLACK_PEN);
dc.SelectStockObject(WHITE_PEN);
取消选定选入的GDI对象而实现清除设备描述表仍然是windows编程中的惯例。
在堆上创建和删除画笔画刷。
CPen *pen = new CPen(PS_SOLID, 1, RGB(255, 0, 0));
CPen *pOldPen = dc.SelectObject(pen);
dc.SelectObject(pOldPen);
delete pen;
有可能想到这样一条语句去取消选定并删除该画笔:
Delete dc.SelectObject(pOldPen);
这种方法对画笔有用,对画刷不管用。因为同时创建两个画刷时,它们共用一个HBRUSH。
- 《MFC windows程序设计》中关于GDI对象的选定
- MFC Windows 程序设计->取消对GDI对象的选定
- windows程序设计(9):简单的GDI对象
- 《MFC Windows程序设计》中Accel的改进
- 《Windows程序设计》读书笔记------------->>GDI的简单基础<<
- windows程序设计 GDI简介
- Windows程序设计-GDI图形
- 关于映射模式(MFC windows程序设计)
- 关于MFC GDI对象资源释放一些注意事项
- VS2010的MFC中配置GDI+
- mfc中gdi+的简单应用
- windows程序设计之GDI简介
- Windows程序设计:GDI映射模式
- 关于GDI对象泄露查找的经验总结
- 关于GDI 对象的创建和释放
- MFC中GDI绘图
- MFC中使用GDI+
- MFC的GDI对象的构造与释放
- ubuntu与Debian系统中的update-rc.dubuntu与Debian系统中的update-rc.d
- 无符号整型与有符号整型
- 修改mysql字符编码成为UTF8
- 穿越遐想——从二维蚂蚁到N维宇宙(转)
- Oracle 使用表
- 《MFC windows程序设计》中关于GDI对象的选定
- COM实现
- IO重定向
- 线程池管理
- 获取系统当前的进程及模块信息
- Implementation Of Choreography
- PE文件格式详解(1)
- java线程复习
- c、c++,MFC在笔试中容易出现的内容