第5章 绘图基础

1、GDI :Graphics Device Inter,图形设备接口。

2、GDI是通用接口,调用显示设备的驱动接口

3、GDI的主要目的就是支持与设备无关的图形;;位图有与设备有关位图和与设备无关位图。

4、几种获取设备环境句柄

         1)在WM_PAINT消息过程 使用BeginPaint/EndPaint 不需要释放

         2)GetDC,返回的句柄可以在整个客户区内绘制  释放:RleaseDC

        3)GetWindowDC, 返回额句柄不仅包活客户区,非客户区,标题,菜单、滚动条,客户区外框 释放:RleaseDC

        4)CreateDC,CreateDC("DISPLAY".NULL,NULL,NULL) =GetDc(NULL),获证整个屏幕的设备环境句柄

           打印机的设备环境句柄就是使用CreateDC获取, 释放:DeleteDC

5、获取设备环境信息GetDeviceCaps(hcc, iIndex) ,其中iIndex { HORZRES---水平分辨率, VERTRES ---垂直分辨率}

如果HDC是整个屏幕的设备环境句柄,那么GetDeviceCaps(hcc, iIndex) == GetSystemMetrics

如果HDC是打印机设备环境,那么获取的是打印机设备环境相关信息

 

该函数还可以确认设备处理各类图形的能力

 

5、分辨率

1)显示器的分辨率,水平像素点总和和垂直像素点总和

2)打印机的分辨率,每一寸多个个像素点

 

6、保存设备环境

      如果窗口样式 没有再注册时使用CS_OWNDC,那么通过各种方式获取的设备DC,释放前修改的DC属性,在释放DC后,恢复到默认属性。

      如果使用CS_OWNDC,那么在释放前使用SaveDC,那么可以保存DC属性值。使用RestroreDC 可以恢复DC属性到上一次SaveDC前的属性,也就是上上一次SaveDC的结果

7、画线函数

1)  MoveToEx 设置设备环境的当前位置

1)SetPixcel

2)PolyLineTo

 

			POINT  pts[5];
			long a[5]={50,50,50,50,150};
			long b[5]={10,20,30,40,50};
			for(int i=0;i<5;i++)
			{
				pts[i].x=a[i];
				pts[i].y=b[i];
			} 
			//Polygon(hdc,pts,_countof(pts) );
			//Polyline(hdc,pts,_countof(pts) );
			::MoveToEx(hdc,700,200, &pt);
			PolylineTo(hdc,pts,_countof(pts) );


8、获取设备环境的备用对象 GetStockObject
9、GID对象使用原则

1)不要删除备用对象

2)最终应删除你所创建的GDI对象

3)当Gdi对象呗选入一个有效的设备环境时,不要删除它

10、如果程序初始化需要创建很多画笔,那么使用CreateIndirect函数

11、设备坐标和逻辑坐标 只要当使用设备环境句柄参数的函数,计算结果就是使用映射模式对应的逻辑坐标,否则都是设备坐标(GetSystemMerrics 是使用设备坐标)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值