MFC 图形设计

34 篇文章 0 订阅

设备描述表

是Windows定义的数据结构,包含的信息允许windows将输出请求转换为对正在使用的特定物理输出设备的动作。输出动作采用设备无关性GDI调用形式,将图像绘制在任何显示器或者其他输出设备上。

1、使用BeginPaint(hwnd,&ps)来获取设备描述表句柄,必须使用EndPaint(hwnd,&ps)来释放

2、使用GetDC()来获得,必须使用ReleaseDC()来释放

两者区别是,BeginPaint只用于由WM_PAINT消息驱动的图形刷新,在获取设备环境后,操作区域为无效区域。最后必须有EndPaint来释放。而GetDC()使用较广泛,获取设备环境后,操作区位整个客户区,最后必须由ReleaseDC()来释放。

因为设备描述表在内存中创建,而内存地址是经常变化的,所以一个设备描述表句柄不是直接执行设备描述表对象,而是指向另外一个跟踪设备描述表地址指针。

元文件和路径

元文件和路径分别是Windows和MFC提供的保存一副图像供以后使用的方法。

元文件是一个结构的集合,用与设备无关的格式来存储图像,实际上是捕获任何绘图到一个设备描述表中,以便以后能重放或者存储到磁盘上。位图一旦装载到内存中,就和设备无关,因此可以认为元文件在内存中是设备无关的位图。一旦应用程序将输出结果记录到一个元文件中,那么该元文件就可以被使用任意多次,并且输出结果可以被发送到任意多个物理设备上。缺点是,他比位图的绘图速度慢。因此,如果一个应用程序要求有较快的绘图速度,而不需要具有设备无关性,则应该用位图代替元文件。

路径,像元文件一样捕获绘图函数,但路径能绘制修改版形状,也可以填充一个路径图像或把他变成一个剪裁区域。



void CUsePenView::OnLButtonUp(UINT nFlags, CPoint point)
{
	// TODO: 在此添加消息处理程序代码和/或调用默认值
	CDC	* pcdc = (CDC*)GetDC();
	pcdc->MoveTo(m_point);
	pcdc->LineTo(point);

	//CClinetDC在内部构造函数中封装了GetDC,在析构函数中封装了ReleaseDC,
	//也就是用CClientDC可以不用显示地调用GetDC和ReleaseDC
	//CClientDC ccdc(this);
	//ccdc.MoveTo(m_point);
	//ccdc.LineTo(point);

	//CWindowDC的特点是,由他生成的对象可以访问整个窗口区域,包括框架窗口的客户区和非客户区
	//CWindowDC cwdc(this	);//在框架窗口中绘图,需要获得父窗口指针cwdc(GetParent())
	//cwdc.MoveTo(m_point);
	//cwdc.LineTo(point);

	CView::OnLButtonUp(nFlags, point);
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值