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

📄 用visual c++_net进行gdi+编程 _3.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=(0048)http://www.qqread.com/vcdotnet/d652242000_3.html -->
<HTML lang=zh xml:lang="zh" xmlns="http://www.w3.org/1999/xhtml"><HEAD><TITLE>用Visual C++.NET进行GDI+编程 - QQread.com 电脑频道</TITLE>
<META http-equiv=Content-Language content=zh-CN>
<META 
content=[art_mtkw],电脑入门,上网指南,操作系统,常用软件,黑客与安全,网络游戏,程序开发,数据库开发,网页制作,图像处理,多媒体制作,网络编程,加密技术,网络技术 
name=keywords>
<META content="用Visual C++.NET进行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="用Visual C++_NET进行GDI+编程 _3.files/qqread_html.css" type=text/css 
rel=stylesheet><LINK href="用Visual C++_NET进行GDI+编程 _3.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="用Visual C++_NET进行GDI+编程 _3.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>用Visual C++.NET进行GDI+编程 
  <DD class=ArticleInfo3>
  <SCRIPT src="用Visual C++_NET进行GDI+编程 _3.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> 
  作者:ADDING 2006-01-24 来源:yesky 浏览:<SPAN id=count></SPAN> </DIV>
  <DD class=ArticleInfo_3>
  <DD class=ArticleInfo_3><A 
  href="http://www.qqread.com/vcdotnet/d652242000_2.html">上一页</A>&nbsp;<A 
  href="http://www.qqread.com/vcdotnet/d652242000.html">1</A>&nbsp;<A 
  href="http://www.qqread.com/vcdotnet/d652242000_2.html">2</A>&nbsp;<FONT 
  color=#ff0000>3</FONT>&nbsp; 
  <DD class=ArticleContent><BR>  6、用Visual C++.NET使用GDI+的一般方法<BR><BR>  在Visual 
  C++.NET使用GDI+一般遵循下列步骤:<BR><BR>  (1) 
  在应用程序中添加GDI+的包含文件gdiplus.h以及附加的类库gdiplus.lib。通常gdiplus.h包含文件添加在应用程序的stdafx.h文件中,而gdiplus.lib可用两种进行添加:第一种是直接在stdafx.h文件中添加下列语句:<BR><BR>
  <TABLE width="100%" bgColor=#ffffff>
    <TBODY>
    <TR>
      <TD>#pragma comment( lib, "gdiplus.lib" 
  )</TD></TR></TBODY></TABLE><BR>  另一种方法是:选择"项目"ò"属性"菜单命令,在弹出的对话框中选中左侧的"链接器"ò"输入"选项,在右侧的"附加依赖项"框中键入gdiplus.lib,结果如图1所示。<BR><BR><IMG 
  alt="用Visual C++.NET进行GDI+编程(图一)" 
  src="用Visual C++_NET进行GDI+编程 _3.files/20060124pq205_1.gif" 
  border=0><BR>图1<BR><BR>  (2) 在应用程序项目的应用类中,添加一个成员变量,如下列代码:<BR><BR>
  <TABLE width="100%" bgColor=#ffffff>
    <TBODY>
    <TR>
      <TD>ULONG_PTR 
  m_gdiplusToken;</TD></TR></TBODY></TABLE><BR>  其中,ULONG_PTR是一个DWORD数据类型,该成员变量用来保存GDI+被初始化后在应用程序中的GDI+标识,以便能在应用程序退出后,引用该标识来调用Gdiplus:: 
  GdiplusShutdown来关闭GDI+。<BR><BR>  (3) 
  在应用类中添加ExitInstance的重载,并添加下列代码用来关闭GDI+:<BR><BR>
  <TABLE width="100%" bgColor=#ffffff>
    <TBODY>
    <TR>
      <TD>int 
        CEx_GDIPlusApp::ExitInstance()<BR>{<BR> Gdiplus::GdiplusShutdown(m_gdiplusToken);<BR> return 
        CWinApp::ExitInstance();<BR>}</TD></TR></TBODY></TABLE><BR>  (4) 
  在应用类的InitInstance函数中添加GDI+的初始化代码:<BR><BR>
  <TABLE width="100%" bgColor=#ffffff>
    <TBODY>
    <TR>
      <TD>BOOL 
        CEx_GDIPlusApp::InitInstance()<BR>{<BR> CWinApp::InitInstance();<BR> Gdiplus::GdiplusStartupInput 
        gdiplusStartupInput;<BR> Gdiplus::GdiplusStartup(&amp;m_gdiplusToken, 
        &amp;gdiplusStartupInput, 
  NULL);<BR> ...<BR>}</TD></TR></TBODY></TABLE><BR>  (5) 
  在需要绘图的窗口或视图类中添加GDI+的绘制代码。<BR><BR>  下面分别就单文档和基于对话框应用程序为例,说明使用GDI+的一般过程和方法。<BR><BR>  1. 
  在单文档应用程序中使用GDI+<BR><BR>  在上面的过程中,我们就是以一个单文档应用程序Ex_GDIPlus作为示例的。下面列出第5步所涉及的代码:<BR><BR>
  <TABLE width="100%" bgColor=#ffffff>
    <TBODY>
    <TR>
      <TD>void CEx_GDIPlusView::OnDraw(CDC* pDC)<BR>{<BR> CEx_GDIPlusDoc* pDoc 
        = GetDocument();<BR> ASSERT_VALID(pDoc);<BR> using namespace 
        Gdiplus;<BR> Graphics graphics( pDC-&gt;m_hDC );<BR> Pen newPen( Color( 
        255, 0, 0 ), 3 );<BR> HatchBrush newBrush( 
        HatchStyleCross,<BR> Color(255, 0, 255, 0),<BR> Color(255, 0, 0, 255)); 
        <BR> // 创建一个填充画刷,前景色为绿色,背景色为蓝色<BR><BR> graphics.DrawRectangle( 
        &amp;newPen, 50, 50, 100, 60); <BR> // 
        在(50,50)处绘制一个长为100,高为60的矩形<BR><BR> graphics.FillRectangle( 
        &amp;newBrush, 50, 50, 100, 60);<BR> // 
      在(50,50)处填充一个长为100,高为60的矩形区域<BR>}</TD></TR></TBODY></TABLE><BR>  编译并运行,结果如图2所示。<BR><BR><IMG 
  alt="用Visual C++.NET进行GDI+编程(图二)" 
  src="用Visual C++_NET进行GDI+编程 _3.files/20060124pq205_2.gif" 
  border=0><BR>图2<BR><BR>  2. 在基于对话框应用程序中使用GDI+<BR><BR>  步骤如下:<BR><BR>  (1) 
  创建一个默认的基于对话框的应用程序Ex_GDIPlusDlg。<BR><BR>  (2) 打开stdafx.h文件添加下列代码:<BR><BR>
  <TABLE width="100%" bgColor=#ffffff>
    <TBODY>
    <TR>
      <TD>#include &lt;gdiplus.h&gt;<BR>#pragma comment( lib, "gdiplus.lib" 
      )</TD></TR></TBODY></TABLE><BR>  (3) 打开Ex_GDIPlusDlg.h文件,添加下列代码:<BR><BR>
  <TABLE width="100%" bgColor=#ffffff>
    <TBODY>
    <TR>
      <TD>class CEx_GDIPlusDlgApp : public 
        CWinApp<BR>{<BR> ...<BR> public:<BR> virtual BOOL 
        InitInstance();<BR> ULONG_PTR 
  m_gdiplusToken;<BR> ...<BR>};</TD></TR></TBODY></TABLE><BR>  (4) 在 
  CEx_GDIPlusDlgApp类的属性窗口中,单击"重写"工具按钮,为该添加ExitInstance的重载:<BR><BR>
  <TABLE width="100%" bgColor=#ffffff>
    <TBODY>
    <TR>
      <TD>int 
        CEx_GDIPlusDlgApp::ExitInstance()<BR>{<BR> Gdiplus::GdiplusShutdown(m_gdiplusToken);<BR> return 
        CWinApp::ExitInstance();<BR>}</TD></TR></TBODY></TABLE><BR>  (5) 
  定位到CEx_GDIPlusDlgApp::InitInstance函数处,添加下列GDI+初始化代码:<BR><BR>
  <TABLE width="100%" bgColor=#ffffff>
    <TBODY>
    <TR>
      <TD>BOOL 
        CEx_GDIPlusDlgApp::InitInstance()<BR>{<BR> CWinApp::InitInstance();<BR> Gdiplus::GdiplusStartupInput 
        gdiplusStartupInput;<BR> Gdiplus::GdiplusStartup(&amp;m_gdiplusToken, 
        &amp;gdiplusStartupInput, 
  NULL);<BR> ...<BR>}</TD></TR></TBODY></TABLE><BR>  (6) 
  定位到CEx_GDIPlusDlgDlg::OnPaint函数处,添加下列GDI+代码:<BR><BR>
  <TABLE width="100%" bgColor=#ffffff>
    <TBODY>
    <TR>
      <TD>void CEx_GDIPlusDlgDlg::OnPaint() <BR>{<BR> if 
        (IsIconic())<BR> {<BR>  ...<BR> }<BR> else<BR> {<BR>  CPaintDC dc(this); 
        // 用于绘制的设备上下文<BR>  using namespace Gdiplus;<BR>  Graphics graphics( 
        dc.m_hDC );<BR>  Pen newPen( Color( 255, 0, 0 ), 3 );<BR>  HatchBrush 
        newBrush( HatchStyleCross,<BR>  Color(255, 0, 255, 0),<BR>  Color(255, 
        0, 0, 255)); <BR>  graphics.DrawRectangle( &amp;newPen, 50, 50, 100, 
        60); <BR>  graphics.FillRectangle( &amp;newBrush, 50, 50, 100, 
        60);<BR>  CDialog::OnPaint();<BR> }<BR>}</TD></TR></TBODY></TABLE><BR>  (7) 
  编译并运行,结果如图3所示。<BR><BR><IMG alt="用Visual C++.NET进行GDI+编程(图三)" 
  src="用Visual C++_NET进行GDI+编程 _3.files/20060124pq205_3.gif" 
  border=0><BR>图3<BR><BR>  从上述例子可以看出,只要能获得一个窗口的设备环境指针,就可构造一个Graphics对象,从而可以在其窗口中进行绘图,我们不必在像以往那样使用Invalidate/UpdateWindow来防止<A 
  href="http://www.qqread.com/keywords/windows.html" 
  target=_blank>Windows</A>对对话框窗口进行重绘。
  <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>
  <DD class=ArticleContent>关键字: <A 
  href="http://www.qqread.com/keywords/image-processing.html">图像处理</A>&nbsp;&nbsp;<A 
  href="http://www.baidu.com/baidu?tn=jkday2000&amp;word=设计">设计</A>&nbsp;&nbsp;<A 
  href="http://www.qqread.com/keywords/operating-system.html">操作系统</A>&nbsp;&nbsp;<A 
  href="http://www.qqread.com/keywords/word.html">word</A>&nbsp;&nbsp;<A 
  href="http://www.qqread.com/keywords/windows.html">windows</A>&nbsp;&nbsp;<A 
  href="http://www.qqread.com/keywords/visualcpp.html">visual 
  c++</A>&nbsp;&nbsp;<A 
  href="http://www.baidu.com/baidu?tn=jkday2000&amp;word=PDA">pda</A>&nbsp;&nbsp;<A 
  href="http://www.qqread.com/keywords/os.html">os</A>&nbsp;&nbsp;<A 
  href="http://www.qqread.com/keywords/mfc.html">mfc</A>&nbsp;&nbsp;<A 
  href="http://www.qqread.com/keywords/ie.html">ie</A>&nbsp;&nbsp; 
  <DD class=ArticleInfo_3><A 
  href="http://www.qqread.com/vcdotnet/d652242000_2.html">上一页</A>&nbsp;<A 
  href="http://www.qqread.com/vcdotnet/d652242000.html">1</A>&nbsp;<A 
  href="http://www.qqread.com/vcdotnet/d652242000_2.html">2</A>&nbsp;<FONT 
  color=#ff0000>3</FONT>&nbsp; </DD></DL>
<DIV id=ArticleContent4>
<SCRIPT src="用Visual C++_NET进行GDI+编程 _3.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="用Visual C++_NET进行GDI+编程 _3.files/580.js" 
      type=text/javascript></SCRIPT>

⌨️ 快捷键说明

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