第6章文本与屏幕绘图_第1页
第6章文本与屏幕绘图_第2页
第6章文本与屏幕绘图_第3页
第6章文本与屏幕绘图_第4页
第6章文本与屏幕绘图_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第6章文本与屏幕绘图 farsight 2华清远见嵌入式培训中心版权所有;华清远见嵌入式培训中心版权所有;未经华清远见明确许可,不能为任何目的以任何形式复制未经华清远见明确许可,不能为任何目的以任何形式复制或传播此文档的任何部分;或传播此文档的任何部分;本文档包含的信息如有更改,恕不另行通知;本文档包含的信息如有更改,恕不另行通知;保留所有权利。保留所有权利。6.1文本操作 6.1.1 屏幕绘制原理在Windows CE系统中,用户层和GDI层统称为图形窗口事件子系统,即GWES。在绘图消息处理过程中,首先调用BeginPaint函数,然后将该无效区域标重新设为有效(Valid)并重新计算这个

2、区域的尺寸,接下来发送一个WM_ERASEBACKGROUND消息给窗口。某些情况下,还会对窗口的背景区域进行重绘。最后BeginPaint返回当前显示设备环境变量的句柄,该句柄可以在程序的其他地方使用。最后调用EndPaint函数将设备环境释放。如果在WM_PAINT消息的处理过程中没有其他特殊的操作,也必须调用BeginPaint 和EndPaint函数,用来将无效区域标重置为有效。 6.1.2使用设备环境设备环境一般被简称为DC,在Windows CE操作系统中,设备环境可以是显示屏,也可以是打印机。在进行屏幕绘图时,一般是对显示屏进行操作。 Windows CE中的应用程序不会直接在设

3、备上进行绘图操作。当需要进行绘图时,首先获取当前显示设备环境的句柄,然后使用这个句柄,在设备环境中进行绘图操作。可以通过调用GetDC函数来获得当前设备DC的句柄。同样当绘图工作完成后,应调用ReleaseDC释放设备环境DC。 6.1.3 输出文本通过调用DrawText函数完成显示文本的功能。还可以使用函数ExtTextOut来显示文本。Windows CE系统中只能使用这两个文本绘制函数。 6.1.4 6.1.4 设置设备环境的属性设置设备环境的属性在使用DrawText进行屏幕绘制时,有时需要对设备环境属性进行配置。可以调用SetTextColor 和GetTextColor函数来获取

4、和设置字体的颜色。可以调用GetDeviceCaps函数,来查询设备支持的颜色的数目。6.1.5 使用Windows CE中的字体Windows CE操作系统中提供两种字体类型:光栅型和TrueType型。光栅型字体以位图形式存储,方便保存和使用,但如果用于缩放时,比如将光栅字体放大时,字体边缘会出现锯齿纹。TrueType字体可以很好地解决缩放问题。TrueType型并不是以图象形式存储字符,而是保存每个字符的描述信息。当系统需要显示文字时,字体引擎获取描述信息,以适当的尺寸在屏幕上进行字符的绘制。Windows CE系统中不会同时支持TrueType或光栅字体,即同时只能使用一种字体类型,

5、而且二者的编程接口都是一样的在应用程序中,使用非默认字体之前,必须首先创建字体并在设备环境DC中将其选中,此后在DC中绘制文本时就可以使用这个字体了。6.2 绘图操作 6.2.1 位图概念位图(Bitmap)是一种图形化的对象,其本质是本质上是像素数据构成的数组。可以在设备环境里DC里进行创建、绘制、操纵和接收位图的操作。通常Windows下的位图被划分成两种类型:设备相关位图(DDB)和设备无关位图(DIB)。DDB是一种和实际设备环境DC的特性紧密相关的位图类型,如果跟换绘图的设备环境DC,那么绘制DDB的方法也要发生变化。而DIB则相反,它是一种和具体设备类型无关的位图类型,可以在任何设

6、备环境DC中进行绘制。6.2.26.2.2使用设备相关位图使用设备相关位图可以使用CreateBitmap函数来创建设备相关位图 。使用函数CreateCompatibleBitmap可以创建一个格式与当前设备环境DC相兼容的位图 。6.2.3 使用设备无关位图设备无关位图和设备相关位图之间的最大差异在于,设备无关位图数据中拥有自己的颜色信息。可以通过Windows CE 系统中的的函数SHLoadDIBitmap来完成装载DIB文件并将其数据转换为位图的功能 。6.2.4 绘制位图在将位图绘制到屏幕DC上之前,首先应先将位图选择进一个内存设备环境DC,再将该DC复制到屏幕设备环境DC中。把位

7、图选择到一个设备环境DC的过程与之前把逻辑字体选择到设备环境DC的过程十分类似。使用函数CreateCompatibleDC来创建内存设备环境DC 。函数调用成功后,将创建一个与当前屏幕设备环境DC兼容的内存设备环境DC。然后就可以使用SelectObject函数将位图选进这个设备环境内存DC。接下来,调用BitBlt函数或StretchBlt函数将位图从内存设备环境DC复制到屏幕设备环境DC中。 6.2.5 绘制直线调用Polyline函数可以完成绘制直线的功能 。绘制该直线还可以使用MoveToEx和LineTo函数 。要使用这两个函数绘制线条时,首先应调用MoveToEx函数将当前点移动

8、到线条的起始坐标处,接下调用LineTo指定终点坐标完成直线的绘制。 如果要查询当前点的坐标,可以调用函数GetCurrentPositionEx, 6.2.6使用画笔设置线条颜色画笔(pen)是用于指定线条外观和形状轮廓的工具。画笔是一个GDI对象,使用画笔时,首先要创建画笔对象,然后将其选进设备环境DC,使用完毕后取消选择,最后销毁画笔对象。可以使用GetStockObject函数来检索画笔Windows CE操作系统提供三种系统画笔,每个1像素宽,分别为白色画笔、黑色画笔和无效画笔。当调用GetStockObject选择画笔时时,可以通过对参数传入WHITE_PEN,BLACK_PEN和NULL_PEN来指定使用其中的一个画笔。与应用程序中创建

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论