- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章進階繪圖與編輯控制
視窗程式設計 第六章 進階繪圖與編輯控制 大 綱 簡介 建立繪圖師專案-可捲動展視窗 建立抽象圖形類別 建立特定圖形類別-由抽象而入具體 圖形編輯 繪圖師之文件管理 繪圖師之編輯控制 圖形選取-圖形調整與位移 展示窗變動處理 其它進階功能-思考與練習 結論 第六章進階繪圖與編輯控制 簡介 各種視窗程式設計之優劣比較 高階發展工具 學習容易 無法隨心所欲,低階行為不易控制,執行效率偏低 Win32 執行檔小,效率高 隨心所欲,但學習困難,發展費時 MFC(相較於Win32) 執行檔稍大,效率稍差 隨心所欲,且學習容易,發展省時 定義C++類別的重要諸元 定義適當的外部成員資料/函式 定義適當的虛擬函式 將功能抽象化 (abstract class) 可改寫(overridable) 定義適當的輔助函式(helper functions) 內部經常被呼叫的功能 妥善的掌握 自動狀態機觀念 程式製作原則 減少鋸齒層次 以歪至多一次為原則 歪一次以上請檢討程式製作方式或規劃完善的演算法後進行實作 每一實作單元在一畫面上能完整呈現 本章範例—繪圖師專案 第六章進階繪圖與編輯控制 建立繪圖師專案-可捲動展視窗 專案建立選項 專案名稱為Painter “File Extention”欄位鍵入“pnt” CPainterView類別,將其Base class選為CScrollView 文件的尺寸與座標系 文件的尺寸與座標系 文件的尺寸與座標系 座標系模式 設定座標系之相關函式 CDC::SetMapMode() CDC::SetWindowExt() CDC::SetWindowOrg() CDC::SetViewportExt() CDC::SetViewportOrg() 文件尺寸?文件管理與展視窗類別各司其職 文件管理類別 根據資料決定文件尺寸 展視窗類別 根據文件尺寸相關資料,設定相關模式後呈現文件內容 文件管理類別的尺寸管理 文件管理類別的尺寸管理 展現窗相關諸元 展現窗功能測試 展視窗之比例配合 捲軸視窗之比例配合功能 CScrollView::SetScrollToFitSize() 功能表增加檢視方法選項 於IDR_MAINFRAME功能表中加入 ﹝檢視(V)﹞|﹝整頁模式顯示(F)﹞選項,其ID設為ID_VIEW_FULLPAGE。 於CPainterDoc定義中宣告屬性為public,型態為BOOL之成員變數m_bViewFullPage。 於CPainterDoc::OnNewDocument()中將成員變數m_bViewFullPage設為FALSE 。 變更功能表顯示內容 於PainterDoc.h檔前端定義以下巨集: ID_VIEW_FULLPAGE命令處理與介面更新 void CDocument::UpdateAllViews( CView* pSender, //更改文件內容之展視窗 LPARAM lHint = 0L, //長整數重繪提示 CObject* pHint = NULL //物件指標重繪提示); void CView::OnUpdate( CView* pSender, //更改文件內容之展視窗 LPARAM lHint, //長整數重繪提示 CObject* pHint //物件指標重繪提示); 展視窗文件更新之重繪處理 展視窗為何不能正常工作? CXxxView之WM_PAINT訊息處理函式 打點畫布(DC) CView::OnPrepareDC()啥事都沒作 。 CScrollView::OnPrepareDC()您認為為我們做了些什麼 ? 您能自力找出CScrollView::SetScrollToFitSize()無法正常工作的原因嗎? 斧底抽薪?檢視原始碼 恍然大悟後 效果當不理想怎麼辦? CScrollView::SetScrollToFitSize()無等比例縮放功能? 未做置中處理 該如何補救? 檢視原始碼 改造(OnPrepareDC) 改造(OnPrepareDC) 改造(OnPrepareDC) 縮放比設定 縮放比設定 CDC::SetWindowExt() CDC::SetViewportExt() 原點設定 邏輯座標與設備座標間之轉換 CDC::DPtoLP() CDC::LPtoDP() 展視窗起始設定 練 習 文件區與非文件區辨識 文件區與非文件區辨識 第六章進階繪圖與編輯控制 建立抽象圖形類別 C++之虛擬函式 達成類別可被改造之功能 達成類別抽象化的目的 虛擬函式之宣告 虛擬函式之宣告 抽象類別 抽象類別 抽象類別 圖形類別之共同處 圖形資料 構成點、工具屬性、
您可能关注的文档
最近下载
- 高速公路路基石方爆破专项施工方案[优秀方案].pdf VIP
- 电力工程质量管理制度.pdf VIP
- 空气和氧气(考点讲义)-中考化学一轮复习(全国通用).pdf VIP
- 重庆某高速公路合同段500KV超高压电塔及输电线路下路基爆破施工防护方案.pdf VIP
- 公顷的认识 课件.ppt
- 新版青岛版三年级上册数学全册教案教学设计含教学反思.doc
- 临近高速公路石方爆破施工防护方案模板.doc VIP
- 在党的建设工作领导小组会议上的讲话.docx VIP
- 2025-2026学年小学数学三年级上册(2024)青岛版(五四制)(2024)教学设计合集.docx
- 一年级数学思维训练题100套x.pdf VIP
原创力文档


文档评论(0)