亚洲欧美第一页_禁久久精品乱码_粉嫩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在线一区二区三区 | 美女被吸乳得到大胸91| 色婷婷av一区| 亚洲欧美另类在线| 9i在线看片成人免费| 国产精品久久午夜| av男人天堂一区| 伊人性伊人情综合网| 在线亚洲欧美专区二区| 亚洲永久免费视频| 欧美另类一区二区三区| 日韩av网站在线观看| 2022国产精品视频| 成人免费三级在线| 亚洲精品日日夜夜| 欧美一区二区福利在线| 国产乱色国产精品免费视频| 国产精品少妇自拍| 日本高清免费不卡视频| 天堂成人免费av电影一区| 久久香蕉国产线看观看99| 国产99久久久国产精品潘金网站| 中文字幕日韩一区二区| 中文字幕一区二区三区色视频| 99re这里都是精品| 首页综合国产亚洲丝袜| 欧美国产一区二区在线观看| 欧美日韩一区二区电影| 国产精品一区在线观看乱码| 亚洲欧美色一区| 26uuu精品一区二区| 亚洲免费毛片网站| 久久精品视频一区二区三区| 在线视频欧美精品| 成人av网站免费观看| 美腿丝袜在线亚洲一区| 一区二区成人在线观看| 麻豆精品久久精品色综合| 亚洲免费观看高清完整版在线观看 | 亚洲一区二区三区中文字幕 | 亚洲精品一线二线三线无人区| 99在线视频精品| 国内一区二区视频| 免费三级欧美电影| 亚洲成人精品一区| 在线欧美日韩精品| 91在线视频免费观看| 成人av高清在线| 白白色 亚洲乱淫| aaa欧美色吧激情视频| 国产美女精品人人做人人爽| 国内精品视频一区二区三区八戒| 日韩成人午夜精品| 久久精品国内一区二区三区| 日本伊人午夜精品| 狠狠色丁香婷综合久久| 国产乱子轮精品视频| 国产精品一二三在| 99久久精品国产毛片| 色婷婷综合久久| 欧美日韩一区二区三区不卡| 7777精品伊人久久久大香线蕉经典版下载 | 在线不卡欧美精品一区二区三区| 欧美无砖砖区免费| 欧美精品一区二区三区在线播放| 久久精品一区二区三区不卡牛牛| 国产欧美日韩在线| 亚洲电影一级片| 久久精品久久久精品美女| 国产91精品一区二区麻豆网站| 99久久国产综合精品色伊| 欧美三级一区二区| 精品国产sm最大网站免费看| 1000部国产精品成人观看| 图片区小说区国产精品视频| 国产一区二区三区视频在线播放| 成人一级视频在线观看| 9191久久久久久久久久久| 国产欧美日韩精品在线| 久久精品国产亚洲一区二区三区| 国产精品小仙女| 欧美岛国在线观看| 五月激情综合婷婷| 94色蜜桃网一区二区三区| 日韩免费电影网站| 性做久久久久久免费观看| 国产成人免费视频网站| 欧美不卡视频一区| 亚洲图片欧美色图| 91视视频在线观看入口直接观看www| 欧美精品久久一区二区三区| 亚洲精品免费播放| 波多野结衣在线一区| 欧美精品一区二区三区高清aⅴ| 亚洲第一电影网| 欧美亚洲精品一区| 亚洲一区二区av电影| 日本韩国一区二区三区视频| 欧美激情一区二区在线| 国产成人精品一区二区三区网站观看| 9191国产精品| 蜜桃视频一区二区三区| 91精品国产色综合久久不卡蜜臀| 一区二区三区欧美久久| 欧美三级资源在线| 天堂一区二区在线| 日韩欧美资源站| 精品系列免费在线观看| 久久久一区二区三区捆绑**| 国产不卡视频在线观看| 久久精品在这里| 日本伦理一区二区| 偷拍一区二区三区四区| 26uuu欧美| 成人av在线观| 亚洲第一激情av| 精品国产乱码久久久久久久久 | 激情深爱一区二区| 亚洲欧美综合色| 欧美伦理影视网| 国产揄拍国内精品对白| 亚洲黄色小视频| 久久久久久夜精品精品免费| 日本韩国欧美在线| 精品一区二区影视| 一区二区三区在线高清| 精品va天堂亚洲国产| 色欧美日韩亚洲| 国产在线不卡一区| 五月综合激情日本mⅴ| 欧美激情一区二区| 日韩欧美国产精品| 欧美亚洲一区三区| 99精品视频中文字幕| 激情成人午夜视频| 日韩国产精品久久久久久亚洲| 中文字幕av在线一区二区三区| 欧美一卡2卡3卡4卡| 色综合激情五月| 91香蕉视频污| 不卡区在线中文字幕| 狠狠色丁香婷综合久久| 日本午夜一区二区| 天天影视色香欲综合网老头| 一区二区三区在线免费播放| 国产精品久久久久aaaa| 国产欧美日韩三级| 国产精品嫩草99a| 国产精品丝袜91| 亚洲精品videosex极品| 亚洲美女精品一区| 亚洲狼人国产精品| 亚洲另类一区二区| 一区二区在线观看视频| 亚洲一区在线看| 午夜视频一区在线观看| 日韩精品电影一区亚洲| 久久精品国产免费| 99久久综合狠狠综合久久| av网站免费线看精品| 日本精品免费观看高清观看| 欧美日韩高清影院| 欧美成人精品3d动漫h| 中文字幕第一页久久| 亚洲欧美日韩国产另类专区| 五月激情综合网| 国产成人精品一区二 | 久久精品72免费观看| 国产激情视频一区二区三区欧美 | 日韩高清不卡一区二区三区| 久久国产三级精品| 不卡av在线免费观看| 日韩视频中午一区| 亚洲色图都市小说| 久久99国产精品免费| 日本国产一区二区| 日本一区二区三区久久久久久久久不 | 色综合久久99| 国产亚洲精品aa| 视频一区二区国产| 日本高清视频一区二区| 国产欧美视频在线观看| 精品一区二区在线播放| 欧美三级电影在线观看| 国产午夜精品理论片a级大结局| 亚洲超丰满肉感bbw| 91亚洲午夜精品久久久久久| 国产欧美日韩综合精品一区二区| 日韩国产高清在线| 91精品在线观看入口| 亚洲超碰97人人做人人爱| 91久久香蕉国产日韩欧美9色| 国产亚洲欧美中文| 丰满白嫩尤物一区二区| 精品国产一区久久| 国产精品一区免费在线观看| 日韩欧美成人一区二区| 狠狠色综合播放一区二区| 制服丝袜亚洲色图|