亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? apc.htm

?? 好的教程Vc++21 天
?? HTM
?? 第 1 頁 / 共 4 頁
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"><HTML><HEAD>	<META HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=iso-8859-1"><SCRIPT LANGUAGE="JavaScript"><!--function popUp(pPage) { var fullURL = document.location; var textURL = fullURL.toString(); var URLlen = textURL.length; var lenMinusPage = textURL.lastIndexOf("/"); lenMinusPage += 1; var fullPath = textURL.substring(0,lenMinusPage); popUpWin = window.open('','popWin','resizable=yes,scrollbars=no,width=525,height=394'); figDoc= popUpWin.document; zhtm= '<HTML><HEAD><TITLE>' + pPage + '</TITLE>'; zhtm += '</head>'; zhtm += '<BODY bgcolor="#FFFFFF">'; zhtm += '<IMG SRC="' + fullPath + pPage + '">'; zhtm += '<P><B>' + pPage + '</B>'; zhtm += '</BODY></HTML>'; window.popUpWin.document.write(zhtm); window.popUpWin.document.close(); // Johnny Jackson 4/28/98 }//-->                                                                </SCRIPT><link rel="stylesheet" href="/includes/stylesheets/ebooks.css">	<META NAME="GENERATOR" Content="Symantec Visual Page Mac 1.1.1">	<TITLE>Teach Yourself Visual C++ 6 in 21 Days -- Appendix C -- Printing and Print Previewing</TITLE></HEAD><BODY TEXT="#000000" BGCOLOR="#FFFFFF"><H1 ALIGN="CENTER"><IMG SRC="../button/sams.gif" WIDTH="171" HEIGHT="66" ALIGN="BOTTOM"BORDER="0"><BR>Teach Yourself Visual C++ 6 in 21 Days</H1><CENTER><P><A HREF="../apb/apb.htm"><IMG SRC="../button/previous.gif" WIDTH="128" HEIGHT="28"ALIGN="BOTTOM" ALT="Previous chapter" BORDER="0"></A><A HREF="../apd/apd.htm"><IMGSRC="../button/next.gif" WIDTH="128" HEIGHT="28" ALIGN="BOTTOM" ALT="Next chapter"BORDER="0"></A><A HREF="../index.htm"><IMG SRC="../button/contents.gif" WIDTH="128"HEIGHT="28" ALIGN="BOTTOM" ALT="Contents" BORDER="0"></A> <HR></CENTER><H1 ALIGN="CENTER">- C -<BR>Printing and Print Previewing</H1><H1></H1><UL>	<LI><A HREF="#Heading1">Using the Framework's Functionality</A>	<UL>		<LI><A HREF="#Heading2">Using Default Print Functionality</A>		<LI><A HREF="#Heading4">Overriding OnPrint()</A>		<LI><A HREF="#Heading5">Using the Printer Device Context</A>		<LI><A HREF="#Heading6">Maintaining the Aspect Ratio</A>	</UL>	<LI><A HREF="#Heading7">Pagination and Orientation</A>	<UL>		<LI><A HREF="#Heading8">Setting the Start and End Pages</A>		<LI><A HREF="#Heading9">Using the Print Dialog Box</A>		<LI><A HREF="#Heading10">Using Portrait and Landscape Orientations</A>		<LI><A HREF="#Heading11">Adding GDI Objects with OnBeginPrinting()</A>		<LI><A HREF="#Heading12">Customizing Device Context Preparation</A>		<LI><A HREF="#Heading13">Aborting the Print Job</A>	</UL>	<LI><A HREF="#Heading14">Direct Printing Without the Framework</A>	<UL>		<LI><A HREF="#Heading15">Invoking the Print Dialog Box Directly</A>		<LI><A HREF="#Heading16">Using StartDoc() and EndDoc()</A>		<LI><A HREF="#Heading17">Using StartPage() and EndPage()</A>	</UL></UL><P><HR SIZE="4"><BR><I>by Jon Bates</I></P><P><I></I><H2><A NAME="Heading1"></A>Using the Framework's Functionality</H2><P>The SDI and MDI frameworks created by the AppWizard add the hooks for printingand previewing by default. These can be turned off by unchecking the Printing andPrint Preview option in Step 4 of the MFC AppWizard, but generally they are usefulto include in any project and add very little overhead. Most of the real work ofprinting is taken care of by the device context and GDI. The framework presents youwith a device context for a print document page; you can treat it pretty much asif it's a normal window device context.</P><P><H3><A NAME="Heading2"></A>Using Default Print Functionality</H3><P>The SDI (Single Document Interface) framework supports printing images from viewsbased on information held in the document. Because this information is already displayedin your applications views, you can probably print it by modifying the view to addprinting support.</P><P>The framework calls your OnDraw() function in the view to display an image. Thereis a corresponding OnPrint() function that it calls to let your view handle printingthe information. Often this task is simply a case of using the same drawing codeas you've implemented in your OnDraw() function. If this is so, you don't actuallyneed to implement the OnPrint() function; the framework does this by default in theCView base class and calls OnDraw(). The printer is then treated just like it wouldbe for a screen because it offers a device context for the drawing functions to use,as a substitute for the usual screen device context. Your OnDraw() function can determinewhether the device context it is passed is a screen or printer device context, butbecause the drawing functions will work in the same way on both, even this knowledgeisn't necessary.</P><P>You can explore the printing functionality added by the standard framework bycreating a standard SDI application with the AppWizard. Leave the Printing and PrintPreview option in Step 4 checked (this means you can click Finish<B> </B>on Step1) and name the project PrintIt.</P><BLOCKQUOTE>	<P><HR><B>STANDARD PRINT FRAMEWORK SUPPORT</B><BR>	</P>	<P>The standard print and print preview support is available only in SDI and MDI	applications. Dialog box-based applications must implement their own printing support.<HR></BLOCKQUOTE><P>The first thing you'll need is a graphic to print. You can create a graphicaltest display in the OnDraw() function of my CPrintItView class (just a normal CView)as shown in Listing C.1. This test displays a line-art style picture with some centralizedtext in a large font (see Figure C.1). The test image isn't too important, but itwill make a useful comparison between printed output and screen display.</P><P><H4>LISTING C.1.&nbsp;LST23_1.CPP--DRAWING IN OnDraw TO PRODUCE A PRINT SAMPLE.</H4><PRE>1:  void CPrintItView::OnDraw(CDC* pDC)2:  {3:      CPrintItDoc* pDoc = GetDocument();4:      ASSERT_VALID(pDoc);5:6:      // TODO: add draw code for native data here7:8:      // ** Set metric mapping9:      pDC-&gt;SetMapMode(MM_LOMETRIC);10:11:      // ** Declare and create a font 2.2cm high12:      CFont fnBig;13:      fnBig.CreateFont(220,0,0,0,FW_HEAVY,FALSE,FALSE,0,14:          ANSI_CHARSET,OUT_DEFAULT_PRECIS,15:          CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,16:          FF_SWISS+VARIABLE_PITCH,&quot;Arial&quot;);17:18:      //** Select the new font and store the original19:      CFont* pOldFont = pDC-&gt;SelectObject(&amp;fnBig);20:21:      //** Declare a client rectangle22:      CRect rcClient;23:      GetClientRect(&amp;rcClient);24:25:      // ** Convert to logical units26:      pDC-&gt;DPtoLP(&amp;rcClient);27:28:      // ** Set up some drawing variables29:      const int nPoints = 50;30:      int xm = rcClient.Width();31:      int ym = rcClient.Height();32:      double dAspW = xm/(double)nPoints;33:      double dAspH = ym/(double)nPoints;34:35:      // ** Select a black pen36:      CPen* pOldPen = 37:           (CPen*)pDC-&gt;SelectStockObject(BLACK_PEN);38:39:      // ** Draw the lines40:      for(int i=0;i&lt;nPoints;i++)41:      {42:          int xo = (int)(i * dAspW);43:          int yo = (int)(i * dAspH);44:45:          pDC-&gt;MoveTo(xo,0);46:          pDC-&gt;LineTo(xm,yo);47:          pDC-&gt;LineTo(xm-xo,ym);48:          pDC-&gt;LineTo(0,ym-yo);49:          pDC-&gt;LineTo(xo,0);50:      }51:52:      // ** Reselect the old pen53:      pDC-&gt;SelectObject(pOldPen);54:55:      // ** Draw the text on top56:      pDC-&gt;SetTextAlign(TA_CENTER+TA_BASELINE);57:      pDC-&gt;SetBkMode(TRANSPARENT);58:</PRE><PRE>59: // ** Set gray text</PRE><PRE>60:      pDC-&gt;SetTextColor(RGB(64,64,64));61:      pDC-&gt;TextOut(xm/2,ym/2,&quot;Sample Print&quot;);62:63:      // ** Reselect the old font64:      pDC-&gt;SelectObject(pOldFont);65:  }</PRE><P><A HREF="javascript:popUp('23fig01.gif')"><B>FIGURE C.1.</B></A><B> </B><I>Graphicaltest output of PrintIt in a window.a</I></P><P>Although there is a fair bit of code in this OnDraw() function, none of it isunusual. It just draws lines inside the client rectangle and writes some text inthe middle. Notice at line 9, the mapping mode is set to MM_LOMETRIC; this sets thelogical coordinates to tenths of a millimeter.</P><P>A 2.2cm high font is created at line 13 and used to draw the sample text at line61. Lines 40 to 50 draw the arty &quot;peg and string&quot; frame using the clientrectangle coordinates. I'll let you decipher the details; the important thing hereis to investigate the business of printing.</P><P>If you build and run the program after adding these lines to the OnDraw() functionof Listing C.1, you should see a graphical display in your application window, asshown in Figure C.1.</P><P>So the big question is this: What must you do to print this image output? Surprisinglylittle--because the standard framework tries to print this by calling your OnDraw()function and passing the device context for the printer rather than for the window.</P><P>If you click the File<B> </B>menu of the PrintIt application and choose PrintPreview, you'll see a small representation of the image in the top-left corner, althoughthe font is too big for the line drawing. This isn't the framework's fault; it hasdone its best to represent your window, but it was passed the wrong coordinates forthe device context. The problem lies with the GetClientRect()used in line 23.</P><P>Notice that GetClientRect() is a member of the view, not of the device context.This works fine for the window because the device context is the same size as thewindow rectangle. Now you're passing the window rectangle to the printer device context(which is small in comparison) but creating a 2.2cm high font that is always thesame size (because of the mapping mode).</P><P><H3><A NAME="Heading4"></A>Overriding OnPrint()</H3><P>To fix the client rectangle coordinate size problem, you must pass the correctrectangle for the printer rather than the window. Fortunately, the framework callsa virtual function that you can override in your view and use to find all the informationyou need. As you read earlier, this function is named OnPrint() and is analogousto OnDraw(). When drawing in a window, OnDraw() is called; when drawing on a printer,OnPrint() is called. You might be wondering how the drawing code in OnDraw() wasexecuted to print preview the sample graphical display. The default CView implementationof OnPrint() simply calls OnDraw(), passing its printer device context.</P><P>Your OnPrint() doesn't have to call OnDraw(); you can override OnPrint() to makeit draw something entirely different, but many applications must print out what theuser sees. These applications reuse their OnDraw() code with the printer device context.</P><P>To override the OnPrint() virtual function, perform the following steps:</P><P><DL>	<DT></DT>	<DD><B>1. </B>Click the ClassView tab of the Project Workspace view.	<P>	<DT></DT>	<DD><B>2. </B>Click the top plus sign to open the view of the project classes.	<P>	<DT></DT>	<DD><B>3. </B>Right-click the view class to which you want to add the OnPrint() override	(such as CPrintItView in the PrintIt example) to display the context menu.	<P>	<DT></DT>	<DD><B>4. </B>Select the Add Virtual Function option to display the New Virtual Override	dialog box.	<P>	<DT></DT>	<DD><B>5. </B>You should see an OnPrint virtual function in the New Virtual Functions	list.	<P>	<DT></DT>	<DD><B>6. </B>Click the Add and Edit button to start editing the OnPrint() virtual	function.	<P></DL><P>The standard override for OnPrint() looks like this:</P><P><PRE>void CPrintItView::OnPrint(CDC* pDC, CPrintInfo* pInfo){    // TODO: Add your specialized code here     CView::OnPrint(pDC, pInfo);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美电影一区二区| 极品美女销魂一区二区三区免费| 亚洲成人动漫在线观看| 国产美女视频一区| 在线观看视频一区| 中文字幕免费观看一区| 免费视频最近日韩| 色吧成人激情小说| 国产精品青草久久| 精品一区二区三区的国产在线播放| 成人av电影免费观看| 日韩精品资源二区在线| 国产精品久久久久久户外露出| 午夜电影网亚洲视频| 成人免费视频网站在线观看| 日韩精品一区二区在线| 亚洲午夜电影在线| gogogo免费视频观看亚洲一| 91精品一区二区三区在线观看| 亚洲欧美电影一区二区| 粉嫩欧美一区二区三区高清影视| 日韩精品一区二区三区视频| 亚洲情趣在线观看| 91网址在线看| 中文字幕亚洲一区二区va在线| 精品一区二区三区久久| 日韩午夜激情视频| 一区二区日韩av| 色综合久久久久久久| 亚洲欧美中日韩| 成人午夜看片网址| 日本一区二区成人在线| 国产一区二区美女诱惑| 日韩你懂的在线观看| 免费在线成人网| 欧美一区二区三区电影| 首页国产欧美久久| 欧美精品乱人伦久久久久久| 亚洲午夜一区二区| 欧美美女黄视频| 日韩av午夜在线观看| 欧美精品高清视频| 美女一区二区视频| 精品国产不卡一区二区三区| 韩国一区二区在线观看| 久久―日本道色综合久久| 国产成人日日夜夜| 中文字幕成人网| 91亚洲大成网污www| 亚洲欧美日韩国产成人精品影院 | 欧美国产视频在线| av电影天堂一区二区在线观看| 亚洲午夜激情av| 欧美日韩一卡二卡| 日日噜噜夜夜狠狠视频欧美人 | 91.xcao| 视频一区视频二区在线观看| 91精品国产高清一区二区三区| 日韩国产一二三区| 精品sm在线观看| 成人18视频日本| 亚洲国产人成综合网站| 欧美日韩高清在线播放| 狠狠色伊人亚洲综合成人| 日本一区二区在线不卡| 色欧美日韩亚洲| 美国精品在线观看| 中文字幕的久久| 欧美男生操女生| 国产真实乱偷精品视频免| 亚洲欧美偷拍卡通变态| 欧美一级xxx| 99久久精品情趣| 日韩国产在线观看一区| 久久久久久久久蜜桃| 在线精品视频一区二区三四| 蜜臀av性久久久久av蜜臀妖精 | 日韩一级片网址| 成人av在线资源网站| 亚洲.国产.中文慕字在线| 久久蜜臀精品av| 欧美色精品天天在线观看视频| 精品一二三四区| 亚洲综合丝袜美腿| 久久先锋影音av| 欧美日本在线一区| 成人午夜电影小说| 日本不卡一二三| 欧美精品视频www在线观看| 成人福利电影精品一区二区在线观看| 五月婷婷激情综合| 伊人夜夜躁av伊人久久| 国产无一区二区| 日韩精品影音先锋| 欧美三区在线视频| 精品一区二区久久| 亚洲成av人**亚洲成av**| 国产精品嫩草99a| wwww国产精品欧美| 在线精品国精品国产尤物884a| 国产精品主播直播| 免费美女久久99| 午夜国产不卡在线观看视频| 国产精品私人影院| 亚洲精品一区二区三区在线观看| 欧美日韩在线免费视频| 97se亚洲国产综合自在线不卡| 麻豆精品一区二区av白丝在线 | 成人动漫视频在线| 国产一区在线看| 激情av综合网| 九色综合狠狠综合久久| 日本v片在线高清不卡在线观看| 亚洲欧美色图小说| 亚洲柠檬福利资源导航| 欧美—级在线免费片| 国产欧美精品一区二区色综合朱莉| 日韩欧美国产一二三区| 欧美精品色综合| 欧美日韩第一区日日骚| 色婷婷精品大在线视频| 色狠狠一区二区| 欧美日韩五月天| 欧美一区二区在线免费播放| 欧美一区二区三区视频在线观看| 色中色一区二区| 欧美日韩国产综合一区二区三区| 色婷婷av一区二区三区大白胸| 国产精品系列在线播放| 国产一区在线不卡| 精品一区二区三区在线播放| 韩国一区二区视频| 国产成人啪免费观看软件| 国产一区视频网站| 国产激情视频一区二区三区欧美| 亚洲六月丁香色婷婷综合久久| 一区二区三区在线看| 亚洲国产视频直播| 午夜国产精品一区| 国产一区二区女| 一道本成人在线| 91精品国产综合久久精品app| 日韩三级中文字幕| 久久精品免视看| 亚洲婷婷综合色高清在线| 亚洲一级片在线观看| 男男视频亚洲欧美| 成人一级黄色片| 欧美色图一区二区三区| 欧美不卡一区二区三区四区| 国产亚洲1区2区3区| 亚洲最新视频在线观看| 蜜桃一区二区三区在线观看| 成人福利电影精品一区二区在线观看| 欧美色偷偷大香| 国产欧美中文在线| 视频一区国产视频| 国产v综合v亚洲欧| 欧美精品久久天天躁| 国产片一区二区| 五月天中文字幕一区二区| 国产精品资源网| 欧美性三三影院| 国产精品视频yy9299一区| 性做久久久久久免费观看欧美| 久久99最新地址| 欧美体内she精高潮| 精品久久久久99| 亚洲一区二区三区精品在线| 韩国av一区二区三区四区| 色哟哟欧美精品| 国产亚洲欧洲一区高清在线观看| 亚洲国产aⅴ成人精品无吗| 丰满放荡岳乱妇91ww| 日韩精品一区二区三区在线播放| 亚洲视频狠狠干| 国产精品456| 欧美成人艳星乳罩| 亚洲一区二区三区四区五区中文| 从欧美一区二区三区| 日韩一区二区麻豆国产| 亚洲综合视频网| 成人中文字幕电影| 欧美一级免费观看| 亚洲国产aⅴ天堂久久| 97久久超碰国产精品| 久久精品一区二区三区不卡| 蜜臀精品一区二区三区在线观看| 色综合久久中文综合久久97| 亚洲国产岛国毛片在线| 国产精品66部| 国产亚洲精品中文字幕| 九九视频精品免费| 精品国产一区二区三区忘忧草| 午夜在线成人av| 在线区一区二视频| 国产精品福利在线播放| 成人综合在线观看| 日本一区二区电影| 成人毛片视频在线观看|