⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vc++_net下gdi+编程之gdi+简介 _1.htm

📁 GDI编程的参考资料
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<!-- saved from url=(0046)http://www.qqread.com/vcdotnet/i352238000.html -->
<HTML lang=zh xml:lang="zh" xmlns="http://www.w3.org/1999/xhtml"><HEAD><TITLE>VC++.NET下GDI+编程之GDI+简介 - QQread.com 电脑频道</TITLE>
<META http-equiv=Content-Language content=zh-CN>
<META 
content=[art_mtkw],电脑入门,上网指南,操作系统,常用软件,黑客与安全,网络游戏,程序开发,数据库开发,网页制作,图像处理,多媒体制作,网络编程,加密技术,网络技术 
name=keywords>
<META content=VC++.NET下GDI+编程之GDI+简介 name=description>
<META content=QQRead.com name=author>
<META content=all name=robots>
<META http-equiv=Content-Type content="text/html; charset=gb2312"><LINK 
href="VC++_NET下GDI+编程之GDI+简介 _1.files/qqread_html.css" type=text/css 
rel=stylesheet><LINK href="VC++_NET下GDI+编程之GDI+简介 _1.files/qqread_html_com.css" 
type=text/css rel=stylesheet>
<STYLE type=text/css>.STYLE2 {
	FONT-SIZE: 14px
}
</STYLE>

<META content="MSHTML 6.00.2900.2180" name=GENERATOR></HEAD>
<BODY><!-- 公共页头 -->
<DIV style="TEXT-ALIGN: center">
<DIV id=topad>
<TABLE>
  <TBODY>
  <TR>
    <TD width=10><SPAN 
id=ad_qqread_top></SPAN><!--End//--></TD></TR></TBODY></TABLE></DIV>
<DIV id=CHBig>
<DIV id=CHBigCSDNLogo><A href="http://www.qqread.com/"><IMG alt=巧巧读书网 
src="VC++_NET下GDI+编程之GDI+简介 _1.files/qqread.gif" border=0></A></DIV>
<DIV id=CHBigHeaderWrapper>
<DIV id=CHBigNavBar2>
<UL>
  <LI><A href="http://www.qqread.com/news/" target=_blank>新闻中心</A>| 
  <LI><A href="http://www.qqread.com/skill/" target=_blank>技巧集锦</A>| 
  <LI><A href="http://www.qqread.com/itlife/" target=_blank>IT人生雨露</A>| 
  <LI><A href="http://www.qqread.com/pcbase/" target=_blank>电脑入门</A>| 
  <LI><A href="http://www.qqread.com/netreference/" target=_blank>上网指南</A>| 
  <LI><A href="http://www.qqread.com/safe/" target=_blank>黑客与安全</A>| 
  <LI><A href="http://www.qqread.com/commentsoft/" target=_blank>常用软件</A>| 
  <LI><A href="http://www.qqread.com/os/" target=_blank>操作系统</A>| 
  <LI><A href="http://www.qqread.com/netgame/" target=_blank>网络游戏</A><BR>
  <LI><A title=图片欣赏 href="http://www.qqread.com/photo/index.html" 
  target=_blank>图片欣赏</A>| 
  <LI><A href="http://www.qqread.com/program/" target=_blank>程序开发</A>| 
  <LI><A href="http://www.qqread.com/database/" target=_blank>数据库开发</A>| 
  <LI><A href="http://www.qqread.com/webdesign/" target=_blank>网页制作</A>| 
  <LI><A href="http://www.qqread.com/photohandle/" target=_blank>图像处理</A>| 
  <LI><A href="http://www.qqread.com/mutimedia/" target=_blank>多媒体制作</A>| 
  <LI><A href="http://www.qqread.com/netprogram/" target=_blank>网络编程</A>| 
  <LI><A href="http://www.qqread.com/encrypt/" target=_blank>加密技术</A>| 
  <LI><A href="http://www.qqread.com/network/" target=_blank>网络技术</A> 
</LI></UL></DIV>
<DIV id=CHBigNavBar1></DIV></DIV>
<DIV style="CLEAR: both"></DIV></DIV></DIV><!-- /公共页头 -->
<DIV id=OutBox>
<DIV id=listMainArea>
<DIV id=disclaimer><A href="http://www.qqread.com/">巧巧读书首页</A> &gt; <A 
title=程序开发 href="http://www.qqread.com/program/index.html">程序开发</A> &gt; <A 
title=.Net技术 href="http://www.qqread.com/dotnet/index.html">.Net技术</A> &gt; <A 
title=VC.NET href="http://www.qqread.com/vcdotnet/index.html">VC.NET</A> &gt; 
正文</DIV>
<DL class=ReadArticle>
  <DT>VC++.NET下GDI+编程之GDI+简介 
  <DD class=ArticleInfo3>
  <SCRIPT src="VC++_NET下GDI+编程之GDI+简介 _1.files/adtitle.js" 
  type=text/javascript></SCRIPT>

  <HR SIZE=2>

  <DD class=ArticleInfo3>
  <DIV align=center><A href="http://www.qqread.com/">http://www.qqread.com/</A> 
  作者:刘涛 2006-01-22 来源:天极网 浏览:<SPAN id=count></SPAN> </DIV>
  <DD class=ArticleInfo_3>
  <DD class=ArticleInfo_3><A 
  href="http://www.qqread.com/vcdotnet/i352238000_2.html">下一页</A>&nbsp;<FONT 
  color=#ff0000>1</FONT>&nbsp;<A 
  href="http://www.qqread.com/vcdotnet/i352238000_2.html">2</A>&nbsp; 
  <DD 
  class=ArticleContent><B>一、GDI简介</B><BR><BR>  要实现绘画功能就需要一个做画的平台及做画的工具。最常用的绘画平台可能就是一张白纸,除此之外,还需要一个画笔或一个画刷,它显示了绘画的发展和进步。
  <TABLE style="MARGIN: 10px 8px 3px 7px" cellSpacing=0 cellPadding=0 align=left 
  border=0>
    <TBODY>
    <TR>
      <TD><SPAN 
  id=ad_qqread_mid_big></SPAN></TD></TR></TBODY></TABLE>由于一个画笔只能拥有或使用一种颜色,这对于实现你的目标来说,可能就显的有些不够用了,因此你可能会最终需要很多画笔。<BR><BR>  设备上下文是绘画平台及绘画所需要工具的集合体,它还包括平台的尺寸、方向、颜色和所有能实现你绘画想象力的附件。<BR><BR>  当使用计算机时,肯定不能向通常那样将工具放在桌子上。为了在<A 
  href="http://www.qqread.com/keywords/windows.html" 
  target=_blank>Windows</A>操作系统上作画,微软创造了图形设备接口,简称为GDI,它是类、函数、变量和常量的集合,或者说是在应用程序中绘画所需要的绝大部分对象。GDI由已安装在计算机中的Gdi.dll动态库来提供。<BR><BR>  <B>二、GDI+</B><BR><BR>  GDI+是Windows系列操作系统用来执行绘画及其他相关图形操作的一套子系统。正如所看到的,新的操作系统<A 
  href="http://www.qqread.com/keywords/windowsxp.html" target=_blank>Windows 
  XP</A> 和Windows Server 
  2003中,GDI+已经替换掉了GDI(图形设备接口)。GDI+中的"+"表示相对于GDI来说,GDI+进行很大的改进,增加了新的特点,而这些在GDI中是很难实现的。GDI+允许你创建独立于设备的应用程序,也就是说不用考虑应用程序将在什么样的硬件上运行。<BR><BR>  微软Windows 
  XP和Windows Server 
  2003本身都带有GDI+。如果想在以前的操作系统上使用GDI+,则必须进行安装。GDI+通过三个方面来提供它的功能:<BR><BR>  (一)矢量图形<BR><BR>  它是连续绘画所形成的区域,基于几何形状的图形,包括直线、线集、圆和四边形。它们在显示器上或其他设备上被看作是点集。为了完成这些类型操作,GDI+系统提供了不同的类来执行不同的任务。例如,一个类可以负责创建和准备用于绘画的工具,另外一个类则使用所提供的工具,来执行实际的绘画任务。<BR><BR>  (二)成像<BR><BR>  尽管创建一个带有可识别颜色的矢量图形看上去很简单,但是在设备上绘画或显示高级的图片却是一个挑战。正是因为这些原因,成像是用于处理这些复杂操作的范畴。 
  <BR><BR>  (三)排印<BR><BR>  排印主要是创建、操纵应用程序中的字体,它甚至包括制造一些可用字体。<BR><BR>  <B>三、GDI+的基本工具</B><BR><BR>  (一)图形平台<BR><BR>  在GDI中绘画,必须获取设备上下文的句柄,这通过声明一个HDC变量或指向HDC的指针,然后调用类似于BeginPaint()的函数来初始化设备上下文来实现。同时,还需要创建绘画所需的工具,例如一个画笔或一个画刷。一旦工具准备好了,必须将它们选入设备上下文,以使它们可以使用。画完后,还需要释放设备上下文。<BR><BR>  在GDI+中,使用一个graphic或 
  graphics 对象来进行绘画。 
  <BR><BR>  (二)填充色彩<BR><BR>  颜色对于增强一个对象的美学外观发挥了最基础的作用。颜色是非空间对象,用于增强对象的视觉效果。为了支持色彩,GDI+库提供了颜色结构。<BR><BR>  一个颜色被创建为包含四字节的值,第一字节的值代表alpha值,它绝大部分情况下是在内部使用,第二、三和四个字节的值分别代表R、G、B(红、绿、兰)的数值。<BR><BR>
  <TABLE width="90%" align=center border=0>
    <TBODY>
    <TR>
      <TD>
        <DIV align=center><IMG alt=VC++.NET下GDI+编程之GDI+简介(图一) 
        src="VC++_NET下GDI+编程之GDI+简介 _1.files/20060122ac259_1.jpg" 
        border=0><BR>图一、GDI+中的颜色结构</DIV></TD></TR></TBODY></TABLE><BR>  转换成十进制,红、绿、蓝的值按照如下规则:<BR><BR>27 
  + 26 + 25 + 24 + 23 + 22 + 21 + 20 <BR>= 128 + 64 + 32 + 16 + 8 + 4 + 2 + 
  1<BR>= 255<BR><BR>  所以,每个值的波动范围在0-255之间变化。Alpha部分是为操作系统保留的,另外三个值合成一个值,如下所示: 
  <BR><BR>
  <TABLE width="90%" align=center border=0>
    <TBODY>
    <TR>
      <TD>
        <DIV align=center><A 
        href="VC++_NET下GDI+编程之GDI+简介 _1.files/20060122ac259_2.jpg" 
        target=_blank><IMG alt=VC++.NET下GDI+编程之GDI+简介(图二) 
        src="VC++_NET下GDI+编程之GDI+简介 _1.files/20060122ac259_2.jpg" 
        border=0></A><BR>图二、颜色值的构成示意图</DIV></TD></TR></TBODY></TABLE><BR>  转换成十进制,这个数字的值是255 
  * 255 * 255 = 
  16581375,这意味着我们大概有0.16亿种可用的颜色。这让人立即产生以下问题,我们怎么使用这些颜色?会产生什么效果?<BR><BR>  监视器的表面类似于一系列很细的水平和垂直的网格线,垂直和水平网格线的交点处被称为一个像素,这个像素拥有、携带并显示一种颜色,如图所示:<BR><BR>
  <TABLE width="90%" align=center border=0>
    <TBODY>
    <TR>
      <TD>
        <DIV align=center><IMG alt=VC++.NET下GDI+编程之GDI+简介(图三) 
        src="VC++_NET下GDI+编程之GDI+简介 _1.files/20060122ac259_3.jpg" 
        border=0><BR>图三、监视器表面示意图</DIV></TD></TR></TBODY></TABLE><BR>  因为相邻的像素拥有不同的颜色,这种效果是一种非常好的失真,产生了富有美感的图片。通过更改像素颜色,可以在图片或图形上产生颜色变幻效果。<BR><BR>  为了使颜色选择更容易,Color结构提供了各种属性,每个属性代表了一个颜色的名字。使用这些颜色时,要在调用的Color结构后紧接着使用"::"操作符,然后是所想要的颜色。所有常用的颜色名字都已包括了进来,它们在Color结构中通过静态属性来代表。这些常用颜色包括Red, 
  Green, Blue, Black, White, Yellow, Fuchsia, Silver, Gray, Brown和 
  Khaki等等,这只是一小部分,还有一些不常用的颜色。下面有一个例子:<BR><BR>
  <TABLE borderColor=#ffcc66 width="90%" align=center bgColor=#dadacf 
    border=1><TBODY>
    <TR>
      <TD>private: System::Void button1_Click(System::Object * sender, 
        System::EventArgs * e)<BR>{<BR> this-&gt;BackColor = 
        Color::Turquoise;<BR>}</TD></TR></TBODY></TABLE><BR>  如果预先定义的颜色不合适,可以通过混合red、green和blue 
  值来定义自己的颜色。创建一个颜色使用如下方法:声明一个Color类型的变量。为了指定颜色的特性,Color结构提供了FromArgb()静态函数,它重载了四个版本:<BR><BR>
  <TABLE borderColor=#ffcc66 width="90%" align=center bgColor=#dadacf 
    border=1><TBODY>
    <TR>
      <TD>public: static Color FromArgb(int argb);<BR>public: static Color 
        FromArgb(int alpha, Color baseColor);<BR>public: static Color 
        FromArgb(int red, int green, int blue);<BR>public: static Color 
        FromArgb(int alpha, int red, int green, int 
  blue);</TD></TR></TBODY></TABLE><BR>  第三种版本最常用,它允许在0-255范围之内定义三种基本颜色的值。下面的例子将产生如图四所示的效果: 
  <BR><BR>
  <TABLE borderColor=#ffcc66 width="90%" align=center bgColor=#dadacf 
    border=1><TBODY>
    <TR>
      <TD>private: System::Void button1_Click(System::Object * sender, 
        System::EventArgs * e)<BR>{<BR> this-&gt;BackColor = Color::FromArgb(26, 
        69, 174);<BR>}</TD></TR></TBODY></TABLE><BR>
  <TABLE width="90%" align=center border=0>
    <TBODY>
    <TR>
      <TD>
        <DIV align=center><IMG alt=VC++.NET下GDI+编程之GDI+简介(图四) 
        src="VC++_NET下GDI+编程之GDI+简介 _1.files/20060122ac259_4.jpg" 
        border=0><BR>图四、自定义颜色效果图</DIV></TD></TR></TBODY></TABLE><BR>  一种颜色无论是使用预定义的颜色属性初始化还是使用FromArgb()方法,如果需要得到一个颜色的R、G、B值的话,可以使用R、G、B属性来抽取对应的基本颜色值。这三个属性都是字节类型。此外,还可以使用Color::ToArgb()来达到同样的目的。它的语法是:<BR><BR>
  <TABLE borderColor=#ffcc66 width="90%" align=center bgColor=#dadacf 
    border=1><TBODY>
    <TR>
      <TD>public: int ToArgb();</TD></TR></TBODY></TABLE><BR>  这个方法将返回一个整数值。 
  <DD class=ArticleContent>关键字: <A 
  href="http://www.qqread.com/keywords/operating-system.html">操作系统</A>&nbsp;&nbsp;<A 
  href="http://www.qqread.com/keywords/windowsxp.html">windows 
  xp</A>&nbsp;&nbsp;<A 
  href="http://www.qqread.com/keywords/vcpp.html">vc++</A>&nbsp;&nbsp; 
  <DD class=ArticleInfo_3><A 
  href="http://www.qqread.com/vcdotnet/i352238000_2.html">下一页</A>&nbsp;<FONT 
  color=#ff0000>1</FONT>&nbsp;<A 
  href="http://www.qqread.com/vcdotnet/i352238000_2.html">2</A>&nbsp; </DD></DL>
<DIV id=ArticleContent4>
<SCRIPT src="VC++_NET下GDI+编程之GDI+简介 _1.files/adend.js" 
type=text/javascript></SCRIPT>
</DIV>
<TABLE style="MARGIN-BOTTOM: 5px" cellSpacing=1 cellPadding=0 width=582 
align=center bgColor=#235f99 border=0>
  <TBODY>
  <TR bgColor=#ffffff>
    <TD bgColor=#ffffff>
      <SCRIPT src="VC++_NET下GDI+编程之GDI+简介 _1.files/580.js" 
      type=text/javascript></SCRIPT>

  <TR bgColor=#ffffff>
    <TD bgColor=#ffffff><IFRAME marginWidth=0 marginHeight=0 
      src="VC++_NET下GDI+编程之GDI+简介 _1.files/CA0HMHXY.htm" frameBorder=0 width=580 
      scrolling=no height=145></IFRAME>
  <TR bgColor=#ffffff>
    <TD>
      <TABLE cellSpacing=0 cellPadding=0 width=580 border=0>
        <TBODY>
        <TR>
          <TD style="PADDING-LEFT: 20px" width=266 bgColor=#235f99><B><FONT 
            color=#ffffff>相关文章</FONT></B></TD>
          <TD style="PADDING-LEFT: 2px" bgColor=#235f99><B><FONT 
            color=#ffffff></FONT><FONT color=#ffffff>热点排行:</FONT></B></TD>
          <TD style="PADDING-LEFT: 5px" width=189 bgColor=#235f99>
            <SCRIPT language=JavaScript 
            src="VC++_NET下GDI+编程之GDI+简介 _1.files/move.js" 
            type=text/javascript></SCRIPT>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -