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消息响应函数在程序中有三处相关信息:函数原型.函数实现和以及用来关联消息和消息响应函数的 ...
随机推荐
- IEEEXtreme Practice Community Xtreme9.0 - Dictionary Strings
Dictionary Strings 题目连接: https://www.hackerrank.com/contests/ieeextreme-challenges/challenges/dictio ...
- Codeforces Round #369 (Div. 2) C. Coloring Trees 动态规划
C. Coloring Trees 题目连接: http://www.codeforces.com/contest/711/problem/C Description ZS the Coder and ...
- java:线上问题排查常用手段
一.jmap找出占用内存较大的实例 先给个示例代码: import java.util.ArrayList; import java.util.List; import java.util.concu ...
- STM32 通用定时器的几种配置方式
STM32 通用定时器的几种配置方式 //------------------------------------------------------------------------------ ...
- 大数据以及Hadoop相关概念介绍
一.大数据的基本概念 1.1.什么是大数据 大数据指的就是要处理的数据是TB级别以上的数据.大数据是以TB级别起步的.在计算机当中,存放到硬盘上面的文件都会占用一定的存储空间,例如: 文件占用的存储空 ...
- Npm安装以及express框架的使用
一.安装node.js 下载node.js,并将其放置合适的位置 二.修改环境变量 添加Node执行路径添加到系统的环境变量PATH中,如图:在PATH变量的值的最后添加“C:\Program Fil ...
- NavigateToPageAction打开新页面
首先要加上两个命名空间 分别为: xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.In ...
- Arcgis for JavascriptAPI 常用接口
转自原文arcgis for javascriptAPI常用接口 var map, navToolbar, editToolbar, tileLayer, toolbar; //var mapBase ...
- Odoo(OpenERP)应用实践:代发货管理
原文地址:http://blog.csdn.net/wangnan537/article/details/47091857 有些分销商,在买家下单后才向供应商采购产品,并由供应商直接发货给客户.这种模 ...
- ibatis.net:第三天,Insert
手工生成主键的模型 xml 配置 <insert id="InsertUser" parameterClass="User"> INSERT INT ...