选择显示字体大小

visual c++.net gdi+编程基础


  gdi+提供从简单到复杂图形绘制的大量方法,并且我们可以通过对路径和区域的操作构造出更复杂的图形,这在cad等场合极为有用。当然,在绘图之前我们有必要搞清一些基本内容,如坐标空间、画笔和画刷等。

  坐标空间及其变换

  在视图和窗口中绘图或定位总是在一个二维坐标系进行,依据作用方法的不同,坐标有多种表示方法,并且各种不同坐标之间可以相互转换。

  1. 世界坐标系、设备坐标系和页面坐标系

  gdi+为我们提供了三种坐标空间:世界坐标系、页面坐标系和设备坐标系。

  "世界坐标系"是应用程序用来进行图形输入输出所使用的一种与设备无关的笛卡尔坐标系。通常,我们可以根据自己的需要和方便定义一个自己的世界坐标系,这个坐标系称为用户坐标系。例如,前面"drawline(&newpen, 20, 10, 200, 100);"中的坐标都是以这个用户坐标系为基准的,默认时使用像素为单位。

  "设备坐标系"是指显示设备或打印设备坐标系下的坐标,它的特点是以设备上的象素点为单位。对于窗口中的视图而言,设备坐标的原点在客户区的左上角,x坐标从左向右递增,y坐标自上而下递增。由于设备的分辨率不同,相同坐标值的物理位置可能不同。如对于边长为100的正方形,当显示器为640 x 480和800 x 600时的大小是不一样的。

  "页面坐标系"是指某种映射模式下的一种坐标系。所谓映射是指将世界坐标系通过某种方式进行的变换。默认时,设备坐标和页面坐标是一致的。

  2. 坐标映射和坐标原点的设置

  为了能保证打印或显示的结果不受设备的影响,gdi+定义了一些映射方法和属性来决定设备坐标和页面坐标之间的关系。这些映射方法和属性有:

   setpageunit和getpageunit

  这两个属性函数是用来设置和获取每个单位所对应的实际度量单位。它通常可以有下列的值:

unitdisplay -- 每个页面单位为1/75英寸;
unitpixel -- 每个页面单位为1个像素,此时页面坐标与设备坐标相同;
unitpoint -- 每个页面单位为1/72英寸;
unitinch -- 每个页面单位为1英寸;
unitdocument -- 每个页面单位为1/300英寸;
unitmillimeter-- 每个页面单位为1毫米。

  例如,或将ex_gdiplusdlg示例中的绘图代码修改成:

cpaintdc dc(this);
using namespace gdiplus;
graphics graphics( dc.m_hdc );
graphics.setpageunit(unitmillimeter);
pen newpen( color( 255, 0, 0 ), 3 );
hatchbrush newbrush( hatchstylecross,
color(255, 0, 255, 0),
color(255, 0, 0, 255));
graphics.drawrectangle( &newpen, 50, 50, 100, 60);
graphics.fillrectangle( &newbrush, 50, 50, 100, 60);

  则笔画宽度为3,以及矩形的左上角顶点坐标和大小单位都为毫米,其结果如图所示。



  setpagescale和getpagescale

 gdi+的这两个属性函数分别用来设置和获取页面的缩放比例。例如,当上面的绘图代码变成:

...
graphics.setpageunit(unitmillimeter);
graphics.setpagescale( (real)0.1);
pen newpen( color( 255, 0, 0 ), 3 );
...

  代码中,real是一个浮点类型的定义。上述代码的结果如图2所示。


图2

  translatetransform

  gdi+的translatetransform方法用来改变坐标的原点位置,例如translatetransform(100, 50)是将坐标原点移到点(100,50)。


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons