MFC中设备描述表dc的使用
以下代码我是在View类中实现的:
/** 利用平台SDK实现画线功能
// 首先获得窗口的设备描述表
HDC hdc;
hdc = ::GetDC( m_hWnd ); //调用的是平台SDK的成员函数
// 移动到线条的起点
MoveToEx( hdc, m_ptOrigin.x, m_ptOrigin.y, NULL ); // 第四个参数是一个指向Point结构体的指针,用于保存移动前鼠标的位置坐标,这里不需要这个坐标,所以设置为NULL
LineTo( hdc, point.x, point.y );
::ReleaseDC( m_hWnd, hdc );
CView::OnLButtonUp(nFlags, point);
*/ /** CDC 类,利用MFC封装类实现画线功能
CDC* pDC = GetDC(); // 调用的是CWnd类的成员函数,View类也是从CWnd类继承的
pDC->MoveTo( m_ptOrigin );
pDC->LineTo( point );
ReleaseDC( pDC );
*/ /** 利用CDC 类的派生类 CClientDC 实现画线功能, 他在构造函数中调用GetDC,在析构时调用ReleaseDC,因此不需要显示调用
//CClientDC dc( this );
CClientDC dc( GetParent() );
dc.MoveTo( m_ptOrigin );
dc.LineTo( point );
*/ /**CWindowDC 也派生于CDC类
//CWindowDC dc( this ); // 在客户区绘图
//CWindowDC dc( GetParent() ); // 可以在菜单栏和工具栏上绘图
CWindowDC dc( GetDesktopWindow());
dc.MoveTo( m_ptOrigin );
dc.LineTo( point );
*/ /** 画笔的使用
//CPen pen( PS_SOLID, 2, RGB(255, 0, 0) );
//CPen pen( PS_DASH, 1, RGB(255, 0, 0) ); //线宽必须<=1才生效
CPen pen( PS_DOT, 1, RGB(255, 0, 0) );
CClientDC dc( this );
CPen* pOldPen = dc.SelectObject( &pen );
dc.MoveTo( m_ptOrigin );
dc.LineTo( point );
dc.SelectObject( pOldPen );
*/ /** 颜色画刷的使用
CBrush brush( RGB(255, 0, 0) );
CClientDC dc( this );
dc.FillRect( CRect( m_ptOrigin, point), &brush );
*/ /** 位图画刷的使用
CBitmap bitmap;
bitmap.LoadBitmapW( IDB_BITMAP1 );
CBrush brush( &bitmap );
CClientDC dc( this );
dc.FillRect( CRect( m_ptOrigin, point ), &brush );
*/ /** 默认是白色画刷,会覆盖掉先前区域内图行
CClientDC dc( this );
dc.Rectangle( CRect( m_ptOrigin, point ) ); // DC 默认是白色画刷,前边画的图像会把后边的覆盖掉,所以要想办法用透明画刷
*/ /** 使用透明画刷
CClientDC dc( this );
// 创建一个空画刷,FromHandle方法可以将画刷句柄转换成画刷对象
// GetStockObject方法返回的是一个HGDIOBJECT句柄,所以要将其强制类型转化成HBRUSH类型
CBrush* pBrush = CBrush::FromHandle( (HBRUSH)GetStockObject( NULL_BRUSH));
CBrush* pOldBrush = dc.SelectObject( pBrush );
dc.Rectangle( CRect( m_ptOrigin, point ) );
dc.SelectObject( pOldBrush );
*/
MFC中设备描述表dc的使用的更多相关文章
- MFC中的各种DC区别
转载自:xntop的<区别MFC中的CClientDC.CWindowDC.CPaintDC.CMetaFileDC> CClientDC及其子类 1. CClientDC类只能在客户区绘 ...
- MFC中属性表单和向导对话框的使用
每次在使用MFC创建一个框架时,需要一步步选择自己的程序的外观,基本功能等选项,最后MFC会生成一个基本的程序框架,这个就是向导对话框:而属性表单则是另外一种对话框,表单上有多个属性页,每点击某一页, ...
- VC++ MFC中如何将应用程序的配置信息保存到注册表中(二)
在上一篇中介绍了几个写入注册表数据和读取注册表数据的接口,并介绍了使用方法. 这一片教你如何使得你的应用程序在下次打开时保持上一次关闭前的状态. 在上一篇添加的代码的基础上,要添加WM_CLOSE消息 ...
- VS2010 MFC中制作Visual Studio风格的停靠侧栏窗口(CDockablePane里嵌套FormView表单视图)
VS2010 MFC中制作Visual Studio风格的停靠侧栏窗口(CDockablePane里嵌套FormView表单视图) 1. 在资源窗口里新建一个FormView的Dialog,修改ID为 ...
- MFC中的一些视图
本章主要介绍MFC中主要的视图类,这些继承自Cview类. 继承关系如上图所示. 滚动视图 CscrollView给Cview添加了基本的滚动功能,它包含WM_VSCROLL和WM_HSCROLL消息 ...
- OpenGL在MFC中的使用总结(一)——基本框架
项目中要画3D显示的模型,于是要用到OpenGL,加上是在MFC中,并且是在MFC中的ActiveX中使用.再并且鉴于他们程序主框架的设定.常规的方法还不一定能实现.所以还是查过不少资料,在此一一总结 ...
- MFC中对话框类(Dialog)的应用
转载http://hi.baidu.com/jackywdx/item/feee8041d2c2e12310ee1e85 Windows应用程序通常是通过对话框接收用户输入.向用户输出信息,本节介绍应 ...
- 怎样在VS2013/MFC中使用TeeChart绘图控件
TeeChart作为一款强大好用的绘图控件,通过它可以绘制出各式各样的图表,包括2D的,还有3D的,绘制的图表美观实用,这里主要讲述如何在VS2013/MFC中使用TeeChart控件,顺便说一下在V ...
- MFC中消息响应机制
由于视类窗口始终覆盖在框架类窗口之上,因此所有操作,包括鼠标单击.鼠标移动等操作都只能由视类窗口捕获.一个MFC消息响应函数在程序中有三处相关信息:函数原型.函数实现和以及用来关联消息和消息响应函数的 ...
随机推荐
- OpenNI2 + NiTE2开发教程
发现了一个非常不错的关于自然交互OpeNI2+NiTE2的资源,非常感谢Heresy,这里分享链接: OpenNI 2.x 教学文章(转载自:Heresy博客,地址:https://kheresy.w ...
- FireDAC 下的 Sqlite [11] - 关于批量提交 SQL 命令的测试
可把下面代码直接贴在空白窗体上, 以快速完成窗体设计: object DBGrid1: TDBGrid Left = 0 Top = 0 Width = 265 Height = 338 Align ...
- [Android 动画]简要分析一下Animator 与 Animation
大家假设喜欢我的博客,请关注一下我的微博,请点击这里(http://weibo.com/kifile),谢谢 转载请标明出处(http://blog.csdn.net/kifile),再次感谢 在 A ...
- 一些 Google 搜索词
(1) flex blazeds java; (2) flex 动画 || flex animation || flex spark glow animation (3) flex glow效果 ...
- Warning: The Copy Bundle Resources build phase contains this target's Info.plist file 'Info
WARNING: The Copy Bundle Resources build phase contains this target's Info.plist file 'Info.plist'. ...
- python测试开发django-11.模型models详解
前言 Django 模型是与数据库相关的,与数据库相关的代码一般写在 models.py 中,Django 支持 sqlite3, MySQL, PostgreSQL等数据库 只需要在settings ...
- Java常用排序算法及性能测试集合
测试报告: Array length: 20000 bubbleSort : 573 ms bubbleSortAdvanced : 596 ms bubbleSortAdvanced2 : 583 ...
- JAVA 解压压缩包中指定文件或实现压缩文件的预览及下载单个或多个指定的文件
业务逻辑中还要判读用户是否有此文件的防问权限 2017-04-20 新增文件与文件夹图标显示及过滤高亮显示功能: 2017-05-20 新增搜索向前及向后.及更新下载功能.更新文件路径显示: 测试地址 ...
- 如何在SpringMVC中获取request对象
1.注解法 @Autowired private HttpServletRequest request; <listener> <listener-class> org.spr ...
- 详细解读Android中的搜索框(四)—— Searchable配置文件
<?xml version="1.0" encoding="utf-8"?> <searchable xmlns:android=" ...