



下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、MFC應用程序的核心是文檔對象以及相關的視圖窗口的概 念,即Cdocument類和Cview類的構成和關系,簡單地說Cdocument類負責數(shù)據(jù)的生成和住址,Cview類負責數(shù)據(jù)的 顯示和用戶交互。輸出到屏幕和輸出到打印機都是數(shù)據(jù)的顯 示,實質上是一樣的,所以打印功能也是由 Cview 類來實現(xiàn) 的。在Cview類中由應用程序向導自動生成的源代碼提供了一個 OnDraw(CDC* pDC)的函數(shù),通過重載這個函數(shù),利用它提供 的pDC (設備上下文)聯(lián)指針,可以在屏幕上顯示各種圖形 和數(shù)據(jù)。Cview 類的打印是通過 OnPrint (CDC* pDC, CprintInfo* pInfo)這
2、個函數(shù)實現(xiàn)的,應用程序向導自動生成的源代碼 中沒有這個函數(shù)的框架,而這個函數(shù)對打印的實現(xiàn)就是簡單 地調用OnDraw(CDC* pDC)這個函數(shù),把打印機的設備上下 文指錢pDC傳遞給OnDraw (CDC* pDC)函數(shù)??梢奀view類對輸出到屏幕和輸出到打印機的處理都是一樣 的,只是換了一個設備上下文而已,那么什么輸出到打印機 的圖像特別小呢?這與VC采用的缺省的坐標映射方式MM_TEXT有關,這 種方式的好處是用戶圖形坐標和設備的像素完全一致。但是 在屏幕的像素大小為800*600時,每邏輯英寸包含的屏幕像 素為96,而打印機的點數(shù)卻要多好幾倍,如當打印為HPLaserJet 6L時每
3、邏輯英寸包含的打印機點數(shù)為600,也就 是說打印機的清晰度比屏幕要高得多。這樣的后果就是在屏 幕上顯示出來的滿屏圖像在打印出來的紙上卻只有一點點 大,怎么解決這個問題呢?一種簡單的方法就是轉換坐標映射方式,命名得打印時 采用的坐標比例例比顯示時采用的坐標比例相應在大若干 倍,就可以解決這一問題。下面將給出詳細的方法。注意到Cview類在進行顯示和打印之前都會調用virtual viod OnPrepareDC (CDC* pDC, CprintInfo* pInfo二NULL ) 這個虛擬成員函數(shù)來準備設備上下文,我們可在Cview類中 重載這個虛擬成員函數(shù),進行坐標轉換。首先用 VC 的 C
4、lassWizard 實現(xiàn)對 OnPrepaeDC (CDC* pDC, CpritInfo* pInfo二NULL )函數(shù)的重載,ClassWizard 生成的源代碼如下:void CTempView:OnprepareDC(CDC*pDC,CPrintInfo* pInfo)/TODO:Add your specialized code here and/or call the base classCView:OnPrepareDC(pDC,pInfo);我們只需在源代碼中加入以下幾行代碼即可,如下:void CPrintSameView:OnPrepareDC(CDC* pDC,CPri
5、ntInfo* pInfo)CView:OnPrepareDC(pDC,pInfo);pDC-SetMapMode(MM_ANISOTROPIC);/ 轉換坐標映射方式CSize size =CSize(800,560);pDC-SetWindowExt(size);/ 確定窗口大小/得到實際設備每邏輯英寸的像素數(shù)量int xLogPixPerInch =pDC-GetDeviceCaps(LOGPIXELSX);int yLogPixPerInch =pDC-GetDeviceCaps(LOGPIXELSY);/得到設備坐標和邏輯坐標的比例在屏幕的像素大小為 800*600時,每邏輯英寸包含的屏幕像素為96,而打印機的 點數(shù)卻要多好幾倍long xExt =(long)size.cx * xLogPixPerInch/96;long yExt =(long)size.cx * yLogPixPerInch/96;pDC-SetViewportExt (int)xExt,(int)yExt ) ;/確定視 口大小 如上所示,首先將坐標映射方式改變?yōu)镸M_ANISOTROPIC方 式,即各向異性的意思,在這種坐標方式下,X軸和Y軸的 邏輯單位可以進行任意的縮入。改變坐標映射方式后,就要 確定窗口大小和視口大小,注意窗口大小就是我們在屏幕上 所見的尺寸。通過
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 個人養(yǎng)殖牧業(yè)合同范本
- 公司間采購合同范例
- 二手收車銷售合同范例
- 出口銷售合同范例pi
- 出售園區(qū)廠房合同范例
- 冷庫安裝簡易合同范例
- 農貿大廳分租合同范例
- epc光伏項目合同范例
- led吸頂燈合同范例
- 事務代辦合同范例
- 高等教育數(shù)字化轉型心得體會
- 2025年安徽財貿職業(yè)學院單招職業(yè)技能測試題庫及答案1套
- 2025年天翼云解決方案架構師認證考試指導題庫-上(單選題)
- 日式保潔培訓課件大全
- 2025年廣東省深圳市高考語文一模試卷
- 2025年陜西工商職業(yè)學院單招職業(yè)技能測試題庫學生專用
- 2025年春人教版英語八年級下冊同步課件 Unit 7 Whats the highest mountain in the world課件 Section A 1a-2d
- 2025年哈爾濱鐵道職業(yè)技術學院單招職業(yè)傾向性測試題庫必考題
- 行為規(guī)范教育中學校長在國旗下講話:嚴格要求自己規(guī)范自己的行為
- 2025年福建省高職單招職業(yè)適應性測試題庫及答案解析
- 七下綜合世界真奇妙-共享“地球村”
評論
0/150
提交評論