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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ch21.htm

?? 24小時學(xué)會vc++
?? HTM
?? 第 1 頁 / 共 3 頁
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"><HTML><HEAD>		<META NAME="GENERATOR" Content="Symantec Visual Page Mac 1.1">	<TITLE>Teach Yourself Visual C++&#174; 5 in 24 Hours -- Hour 21 -- Printing</TITLE></HEAD><BODY TEXT="#000000" BGCOLOR="#FFFFFF"><H1 ALIGN="CENTER"><IMG SRC="../button/sams.gif" WIDTH="171" HEIGHT="66" ALIGN="BOTTOM"BORDER="0"><BR><FONT COLOR="#000077">Teach Yourself Visual C++&#174; 5 in 24 Hours</FONT></H1><CENTER><P><A HREF="../ch20/ch20.htm"><IMG SRC="../button/previous.gif" WIDTH="128" HEIGHT="28"ALIGN="BOTTOM" ALT="Previous chapter" BORDER="0"></A><A HREF="../ch22/ch22.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"><FONT COLOR="#000077">- Hour 21 -<BR>Printing</FONT></H1><P>There are two primary output devices in Windows: the screen and the printer. Printingusing the MFC class library is much simpler than printing in a straight SDK and Cenvironment.</P><P>In this hour, you will learn<UL>	<LI>The support provided for printing using the Document/View architecture<BR>	<BR>		<LI>The differences between printer and screen display output<BR>	<BR>		<LI>How to manage GDI resources used for printing</UL><P>You also will create a sample program to demonstrate how printing is done fora Document/View application.<H2><FONT COLOR="#000077"><B>What Is Printing in a Windows Program?</B></FONT></H2><P>Programs written for Windows should be hardware independent. This extends to theprinter, where all output is performed through device contexts, much as displaysto the screen are done.</P><P>Many programs written for Windows need no hard copy output. However, many programscan benefit by providing reports or other information in a printout. The Document/Viewarchitecture and MFC class library provide standard printing functionality to allSDI and MDI applications.</P><P>Historically, printing in a program written for Windows has been a nightmare.Using the traditional SDK approach, seemingly dozens of function calls and structuresmust be used to send output to a printer. Because Windows supports literally hundredsof printers, en-suring that printed output is printed correctly can be difficult.</P><P>The Document/View architecture and the MFC class library help make creating hard-copyprintouts in a Windows program much easier. You can use the Common Print dialog boxand reuse view functions that are used to display information on the screen.</P><P>Printing in an MFC program is almost effortless. If your program uses the Document/Viewarchitecture and does all of its drawing in the <TT>OnDraw</TT> function, you mightnot need to do anything to get basic printing to work. The source code provided inListing 21.1 is an example of a simple <TT>OnDraw</TT> function that can be usedfor screen and printer output.<H4><FONT COLOR="#000077">TYPE: Listing 21.1. A simple OnDraw function that worksfor the screen and the printer.</FONT></H4><PRE><FONT COLOR="#0066FF"><TT>void CPrintView::OnDraw(CDC* pDC)</TT><TT>{</TT><TT>    CString szMsg = &quot;Hello printer and view example.&quot;;</TT><TT>    pDC-&gt;TextOut( 0, 50, szMsg );</TT></FONT></PRE><P><TT>}</TT> Using the view's <TT>OnDraw</TT> member function is an easy way totake advantage of the hardware independence offered by Windows. If your code is portableenough to run on a variety of screen displays, you probably will get an acceptableprintout using most printers available for Windows.</P><P>On the other hand, there are many cases in which you might want to get more involvedin the printing. For example, if your view is not WYSIWYG, the printed output mightnot be suitable. If your view is a form view, for example, you might want to printyour document's data in another form, such as a list of items in the entire documentor detailed information about an item in the current form.</P><P>When you customize the view functions that are responsible for printing, you canalso offer nice user interface elements such as headers, footers, page numbers, orspecial fonts.<H3><FONT COLOR="#000077"><B>Understanding the MFC Printing Routines</B></FONT></H3><P>The following lists the <TT>CView</TT> routines used to print a view:<UL>	<LI><TT>OnPreparePrinting</TT>, called before the Common Print dialog box is displayed<BR>	<BR>		<LI><TT>OnBeginPrinting</TT>, where GDI resources specific to using the printer should	be allocated<BR>	<BR>		<LI><TT>OnPrepareDC</TT>, called once per page, just before the printout begins<BR>	<BR>		<LI><TT>OnPrint</TT>, called to actually draw to the printer's DC<BR>	<BR>		<LI><TT>OnEndPrinting</TT>, called once after all pages have been printed or after	the job is canceled; this is where GDI resources specific to using the printer are	released</UL><P>These member functions are called by the MFC framework as the print routine progresses.The relationship between these routines is shown in Figure 21.1.</P><P><A NAME="01"></A><A HREF="01.htm"><B>Figure 21.1.</B></A> <BR><I><TT>CView</TT> member functions called while printing a document.</I></P><P>As shown in Figure 21.1, only the <TT>OnPrepareDC</TT> and <TT>OnPrint</TT> memberfunctions are called for every page sent to the printer. The other functions areused to initiate variables in preparation of the printout or to clean up and freeresources after the printout has been completed.</P><P>When AppWizard creates a view class for your program, the <TT>OnPreparePrinting</TT>,<TT>OnBeginPrinting</TT>, and <TT>OnEndPrinting</TT> functions are automaticallyprovided for you. You can add the other member functions with ClassWizard if youmust override the basic functionality.<H3><FONT COLOR="#000077"><B>Creating an MFC Printing Example</B></FONT></H3><P>As an example of the MFC print functions, create a small program that displaysinformation to the screen and the printer. To begin, create an SDI or MDI projectnamed MFCPrint using ClassWizard.</P><P>With ClassWizard, add two message-handling functions for the <TT>CMFCPrintView</TT>class: <TT>OnPrepareDC</TT> and <TT>OnPrint</TT>. You'll find out more about <TT>OnPrepareDC</TT>and <TT>OnPrint</TT> in the next few sections. The other printing functions havealready been included in the <TT>CMFCPrintView</TT> class by AppWizard.</P><P>Add five new member variables and two new functions to the implementation sectionof the <TT>CMFCPrintView</TT> class, as shown in Listing 21.2.<H4><FONT COLOR="#000077">TYPE: Listing 21.2. New CPrintView member variables.</FONT></H4><PRE><FONT COLOR="#0066FF"><TT>protected:</TT><TT>    int     m_nCurrentPrintedPage;</TT><TT>    CFont*  m_pFntBold;</TT><TT>    CFont*  m_pFntBanner;</TT><TT>    CFont*  m_pFntHighlight;</TT><TT>    CPen    m_penBlack;</TT><TT>    void PrintHeader(CDC* pDC);</TT></FONT></PRE><P><TT>void PrintFooter(CDC* pDC);</TT> These new member variables and functionsare used during the printout.<H3><FONT COLOR="#000077"><B>Exploring the <TT>CPrintInfo</TT> Class</B></FONT></H3><P>The <TT>CPrintInfo</TT> class is used to store information about the current stateof a printout. A pointer to a <TT>CPrintInfo</TT> object is passed as a parameterto functions involved in the printout. You can access attributes of the <TT>CPrintInfo</TT>object for information about the printout, or in some cases you can change the attributesto customize the printout. Here are the most commonly used <TT>CPrintInfo</TT> members:<UL>	<LI><TT>m_bPreview</TT> is a flag that is set to <TT>TRUE</TT> if the document is	being previewed.<BR>	<BR>		<LI><TT>m_bContinuePrinting</TT> is a flag that is set to <TT>FALSE</TT> to stop	the print loop.<BR>	<BR>		<LI><TT>m_nCurPage</TT> contains the currently printing page number.<BR>	<BR>		<LI><TT>m_rectDraw</TT> contains the current printout rectangle.<BR>	<BR>		<LI><TT>SetMinPage</TT> sets the document's first page number.<BR>	<BR>		<LI><TT>SetMaxPage</TT> sets the document's last page number.<BR>	<BR>		<LI><TT>GetMinPage</TT> returns the value previously set as the document's first	page number.<BR>	<BR>		<LI><TT>GetMaxPage</TT> returns the value previously set as the document's last page	number.<BR>	<BR>		<LI><TT>GetFromPage</TT> returns the number of the first page being printed.<BR>	<BR>		<LI><TT>GetToPage</TT> returns the number of the first page being printed.</UL><P>Some of these members are used in a particular function. As you learn about eachfunction in the next few sections, commonly used <TT>CPrintInfo</TT> members willbe discussed.<H3><FONT COLOR="#000077"><B>Using the <TT>OnPreparePrinting</TT> Function</B></FONT></H3><P>AppWizard generates the <TT>OnPreparePrinting</TT> function for a project's initialview class. This function is called before the Common Print dialog box is displayed,and it gives you an opportunity to change the values displayed in the Print dialogbox.</P><P>If your document has more than one page, you should calculate the number of pages,if possible. This allows the maximum number of pages to be displayed in the Printdialog box. You can set the number of pages by calling the <TT>CPrintInfo::SetMaxPages</TT>function:</P><PRE><FONT COLOR="#0066FF"><TT>pInfo-&gt;SetMaxPages( 2 );</TT></FONT></PRE><BLOCKQUOTE>	<P><HR><B> </B><FONT COLOR="#000077"><B>CAUTION:</B></FONT><B> </B>You should not allocate	resources in the <TT>CPrintInfo::SetMaxPages</TT> func-tion because you are not notified	if the user cancels the Print dialog box. <HR></BLOCKQUOTE><H3><FONT COLOR="#000077"><B>Using the <TT>OnBeginPrinting</TT> Function</B></FONT></H3><P>The <TT>OnBeginPrinting</TT> function is called after the user has pressed OKin the Print dialog box in order to start the printout. This function is the properplace to allocate resources such as fonts, brushes, and pens that might be neededfor the printout. In the example you work with later, this function is used to create<TT>CFont</TT> objects.</P><P>This function is called only once for each printout. If this function is called,the <TT>OnEndPrinting</TT> function is called after the printout is finished in orderto give you a chance to free resources allocated in the <TT>OnBeginPrinting</TT>function.<H3><FONT COLOR="#000077"><B>Using the <TT>OnPrepareDC</TT> Function</B></FONT></H3><P>The <TT>OnPrepareDC</TT> function is called just before a page is printed or displayedin the view. If <TT>OnPrepareDC</TT> is called with the <TT>CPrintInfo</TT> pointerset to <TT>NULL</TT>, the document is not being printed.</P><P>This function often is overridden for multiple-page documents in order to continuethe printout over multiple pages. To print another page, set the <TT>CPrintInfo::m_bContinue</TT>member variable to <TT>TRUE</TT>:</P><PRE><FONT COLOR="#0066FF"><TT>pInfo-&gt;m_bContinuePrinting = TRUE;</TT></FONT></PRE>

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美女mm1313爽爽久久久蜜臀| 国产精品乱人伦一区二区| 亚洲电影一级黄| 欧美日韩视频第一区| 亚洲成av人片在线观看| 91精品国产91综合久久蜜臀| 麻豆91在线播放| 久久久精品蜜桃| 日本久久精品电影| 午夜日韩在线电影| 日韩精品一区二区三区在线 | 亚洲人成网站在线| 欧美主播一区二区三区| 蜜桃av噜噜一区二区三区小说| 精品久久久久久久久久久久包黑料| 国产一区二区精品久久91| 日本一区二区在线不卡| 在线一区二区三区四区| 麻豆91小视频| 中文字幕综合网| 日韩视频永久免费| fc2成人免费人成在线观看播放| 一区二区不卡在线视频 午夜欧美不卡在| 欧美日韩国产区一| 国产精品综合视频| 亚洲高清久久久| 久久精品一区二区三区不卡牛牛| 91麻豆文化传媒在线观看| 全部av―极品视觉盛宴亚洲| 国产午夜精品一区二区三区嫩草| 在线观看区一区二| 国产精品一区二区x88av| 一区二区三区四区不卡视频| 精品对白一区国产伦| 在线区一区二视频| 国产不卡在线视频| 美腿丝袜亚洲三区| 一区二区不卡在线视频 午夜欧美不卡在| 日韩无一区二区| 在线观看www91| 国产69精品久久久久毛片| 亚洲高清一区二区三区| 国产精品人妖ts系列视频| 欧美一区二区国产| 色88888久久久久久影院按摩 | 亚洲国产欧美一区二区三区丁香婷| 久久综合色婷婷| 欧美色爱综合网| 成人av午夜电影| 国内精品视频666| 日韩精品每日更新| 一区二区三区不卡视频在线观看| 久久久高清一区二区三区| 欧美一区二区福利视频| 91成人网在线| 91免费观看视频| 成人激情文学综合网| 狠狠色狠狠色综合| 日韩国产一二三区| 亚洲成人动漫精品| 亚洲精品一二三四区| 中文字幕欧美日韩一区| 久久这里只精品最新地址| 日韩欧美成人激情| 欧美一区二区三区视频免费播放 | 在线观看成人小视频| 91免费在线视频观看| 国产精品综合一区二区三区| 韩国三级中文字幕hd久久精品| 青青草国产成人av片免费| 亚洲va韩国va欧美va| 一区二区三区在线观看视频| 亚洲女爱视频在线| 国产精品久久久久久久裸模| 国产精品毛片久久久久久| 国产亚洲欧美在线| 中文字幕av免费专区久久| 亚洲国产高清不卡| 亚洲欧美欧美一区二区三区| 亚洲另类一区二区| 伊人婷婷欧美激情| 亚洲大尺度视频在线观看| 午夜天堂影视香蕉久久| 亚洲超丰满肉感bbw| 日韩av电影免费观看高清完整版在线观看| 午夜久久久久久久久| 日本不卡一区二区三区高清视频| 天天影视涩香欲综合网| 免费观看久久久4p| 国产精品自在在线| 成人av影视在线观看| 欧洲亚洲精品在线| 欧美一区二视频| 久久午夜免费电影| 日韩理论片中文av| 亚洲成人精品一区| 激情深爱一区二区| 不卡一二三区首页| 欧美视频完全免费看| 91精品国产综合久久精品性色| 日韩三级电影网址| 欧美激情一区二区三区| 一区二区三区中文在线观看| 天堂va蜜桃一区二区三区漫画版| 久久精工是国产品牌吗| 成人污视频在线观看| 91成人看片片| 精品国产露脸精彩对白| 亚洲欧洲一区二区三区| 亚洲成人av资源| 国产风韵犹存在线视精品| 色偷偷成人一区二区三区91| 日韩免费在线观看| 国产精品国产三级国产aⅴ中文| 亚洲一区影音先锋| 国产一区二区三区日韩| 91亚洲永久精品| 日韩欧美一区中文| 国产精品国产自产拍高清av王其| 亚洲va欧美va人人爽| 丁香婷婷综合色啪| 67194成人在线观看| 综合精品久久久| 久久精品国产成人一区二区三区 | 国产成人av一区二区三区在线 | 成人一道本在线| 8v天堂国产在线一区二区| 国产精品二三区| 久久91精品久久久久久秒播| 日本道在线观看一区二区| 久久久久国产精品麻豆| 日本在线观看不卡视频| 91在线porny国产在线看| 欧美不卡123| 亚洲www啪成人一区二区麻豆| 不卡视频免费播放| 久久久久久久久97黄色工厂| 日韩av电影免费观看高清完整版| 99国产欧美另类久久久精品| 久久久99久久| 久久精品国产一区二区三区免费看| 欧美在线视频不卡| 成人免费在线播放视频| 激情五月播播久久久精品| 91精品在线一区二区| 亚洲成年人影院| 色婷婷亚洲综合| 亚洲欧洲精品成人久久奇米网| 美国毛片一区二区| 欧美一区二区视频网站| 视频一区欧美日韩| 在线观看91精品国产入口| 日韩美女视频一区二区| 成人精品小蝌蚪| 国产精品少妇自拍| 丁香天五香天堂综合| 国产日韩av一区二区| 国产一区二三区好的| 日韩女优av电影在线观看| 日韩电影在线免费| 欧美一区三区四区| 免费精品视频最新在线| 日韩一区二区免费视频| 麻豆一区二区三区| 精品人在线二区三区| 免费高清在线视频一区·| 制服视频三区第一页精品| 亚洲不卡一区二区三区| 欧美日韩国产首页| 奇米四色…亚洲| 日韩精品资源二区在线| 韩国毛片一区二区三区| 久久久精品tv| 成a人片国产精品| 亚洲男人的天堂在线观看| 91福利资源站| 日韩电影在线免费| 精品国产凹凸成av人导航| 韩国毛片一区二区三区| 国产网站一区二区三区| aaa亚洲精品| 一区二区三区色| 日韩一区二区在线看| 国内成人自拍视频| 中文字幕一区日韩精品欧美| 91蝌蚪porny| 无码av免费一区二区三区试看| 日韩视频在线你懂得| 懂色中文一区二区在线播放| 成人免费在线视频观看| 欧美精品色综合| 狠狠狠色丁香婷婷综合久久五月| 日本一区二区三区国色天香| 91蝌蚪国产九色| 日本不卡123| 国产精品色哟哟| 欧美日韩国产首页在线观看| 国产美女精品一区二区三区| 中文字幕亚洲视频| 91精品国产色综合久久不卡电影 |