【正文】
CCustomMenu 類中添加 SetMenuItemInfo 方法,將每個菜單項關聯(lián)一個 CMenuItem結構對象。 //獲取菜單項的數(shù)量 if (m_ItemCount 0) //判斷菜單項數(shù)量是否 0 m_MenuList = new CMenuItem[m_ItemCount]。 } (6) 向 CCustomMenu 類中添加 GetAllItemCount 方法,獲取菜單項的數(shù)量,當前流程圖如下: 7 (7) 向 CCustomMenu 類中添加 AttachMenu 方法,附加菜單句柄到CCustomMenu 類對象上 BOOL CCustomMenu::AttatchMenu(HMENU hMenu) { Attach(hMenu)。 //是否采用隨機顏色 } (5) 在 CCustomMenu 類的析構函數(shù)中釋放成員變量占據(jù)的堆空間。 //初始化背景顏色 m_SelTopColor = RGB(193, 210, 238)。 //初始化整型變量 m_MenuList = NULL。 (4) 在 CCustomMenu 類的構造函數(shù)中初始化成員變量。 //菜單項圖像索引 Int m_MenuType 。代碼如下: //定義一個結構,記錄菜單項的詳細信息 Struct CMenuItem { CString m_Menutext。具體設計如下 : (1) 從 CMenu 類派生一個子類 CCustomMenu。 資源 N Y N Y HMODULEhModule=::LoadLibrary()。 pVoid 數(shù) ((FunGetMenuInfo)pVoid)(hwnd,idObject, ::FreeLibrary(hModule)。 圖 菜單欄高 度 從 中可以發(fā)現(xiàn),當對話框的寬度變化時,菜單欄的高度也會發(fā)生變化,這在繪制菜單的背景顏色時候會帶來困難,需要從 動態(tài)鏈接庫中導出 菜單欄高度 5 該函數(shù)。str) //獲取文件名稱 { intpos=(‘.’)} //反向查找 “ .” 的位置 return (pos); //從左方開始截取字符串,并返回截取的字符串 } CString GetFileExtended Name (CStringamp。為此,定義了兩個全局函數(shù)來獲取文件的名稱和文件擴展名。 SelectObject(m_poldbmp); //選中之前選中的對象 If(m_pbmp!=NULL) //判斷位圖對象是否為空 delete m_pbmp; //釋放位圖對象 DelectObject(this); //釋放設備上下文 內存畫布 CMemDC 只包含一個構造函數(shù)和析構函數(shù),其中,在構造函數(shù)部分,將根據(jù)參數(shù) pDC 創(chuàng)建一個兼容的設備上下文,并且將 pDC 的內容繪制在內存畫布上;在析構函數(shù)中,會將內存畫布的內容輸出到目標設備的上下文中。為了防止閃爍的出現(xiàn),可以設計一個臨時的畫布,稱之為內存畫布,讓所有的繪圖操作均在內存畫布上進行,然后在內存畫布對象失去作用域時將其輸出到目標設備上下文中,這樣就阻止了閃爍情況的出現(xiàn),內存畫布的設計 代碼如下 : 4 m_ pbmpCreateCompatibleBitmap(Pdc,(),rect,Height() ); m_poldbmp=SelectObject(m_bmp); //選中位圖對象 m_Pdc=PdC; //設置成員變量 m_Rect=rect。bk); //選中位圖 pDCBitBlt(0,600,600,amp。 如何設置源設備上下文,并調用 BitBit 方法輸出位圖。用戶可以通過調用窗口類的 GetDC 方法獲得一個 CDC 對象指針。 技術準備 基本繪圖操作 繪圖操作通常是指在窗口的某個區(qū)域輸出位圖圖像。 運行平臺: Windows XP/Windows 20xx/Windows 20xx 。 ? 系統(tǒng)運行穩(wěn)定、安全可靠。 ? 實現(xiàn)位圖的各種常規(guī)操作。 ? 系統(tǒng)采用良好的人機對話模式,界面設計美觀、友好。具體設計要求如下。 ? 幫助模塊 該模塊主要包括軟件的版本、開發(fā)單位等信息。 ? 字符識別模塊 該模塊主要包括手寫數(shù)字識別。 ? 圖像轉換模式 該模塊主要包括位圖轉換為 JPEG、 JPEG 轉換為位圖、位圖轉換為 GIF、 GIF 2 圖像處理系統(tǒng) 圖像顯示模塊 圖像轉換模塊 圖像處理模塊 字符識別模塊 幫助 固定顏色 隨機顏色 關于 顯示 J PEG 顯示G I F 顯示位圖 位圖轉換 J P E G J PEG轉換位圖 位圖轉換G I F G I F轉換位圖 圖像旋轉 圖像銳化處理 圖像反色處理 灰度化處理 線性變換 手寫數(shù)字識別 其他 轉換 為位圖 4個部分。 總體設計 項目規(guī)劃 圖像處理系統(tǒng)是一個典型的圖像處理軟件,它由圖像顯示、圖像轉換、圖像處理、字符識別、其他和幫助等模塊組成。通過使用 GDI,用戶可以非常方便地實現(xiàn)圖像的顯示與轉換。 可行性分析 為了降低程序開發(fā)的難度,使用微軟公司的 GDI+。 ? 實現(xiàn)對位圖的旋轉、反色、灰度化、線性變換等各種操作。 ? 顯示 BMP、 JPEG 、 GIF 等各種格式的圖像?;诖耍O計一個圖像處理軟件。 II Abstract This article has carried on the detailed analysis about graph image processing system development and using of the key technology, identify the corresponding structure and central function, as well as the system adopts technology in the actual development. The system realizes under the Windows XP platform, the topic use Visual C++ as a programming tool, use objectoriented programming techniques to achieve a graphic and image processing software. Major work is divided into three categories, basic drawing and editing graphics, simple image processing, and image format conversion. The graph aspect is designs the graph base class , as well as inherits the graph base class’s specific graph class. Through independent function39。 總體上,本文介紹了系統(tǒng)開發(fā)設計的全過程和設計過程中部分代碼,對系統(tǒng)中采用的關鍵技術也作了一些必要的說明,對圖像變換的基本原理,圖像處理的基本原理和各種圖像格式做了詳細的闡述。 程序結構清晰,可讀性好,程序中做了充分的注釋。通過對獨立功能的封裝,可以為今后需要的圖形圖像的應用奠定基礎。主要工作分為三類,包括基本圖形繪制與編輯、簡單的圖像處理、圖像格式的轉換。 指 導 教 師簽名 : 日 期 : I 摘 要 本文對圖形圖像處理系 統(tǒng)的發(fā)展現(xiàn)狀和所采用的主要技術進行了詳細分析,確定了相應的結構和主要功能,以及實際開發(fā)中所采取的技術。 如被發(fā)現(xiàn)論文中存在抄襲、造假等學術不端行為, 本人 愿 承擔本聲明的法律責任 和一切后果 。除文中已經注明引用的內容外,本論文不含其他個人或集體已經發(fā)表或撰寫過的研究成果。分析設計任務書的要求和用戶需求,進行可行性分析和需求分析,確定系統(tǒng)所需的模版 ,安裝建立設計所需軟硬件環(huán)境;素材采集,處理 . 2. 在確定的模版上 ,對系統(tǒng)功能進行分工 ,進行相關程序設計,根據(jù)用戶的使用反饋結果修正自己的設計方案,在解決了大部分的bug 后,可以將系統(tǒng)進行打包。 通過分析系統(tǒng)的工作過程,將其用 Visual C++程序實現(xiàn),將理論學習與實例相結合,來培養(yǎng)學生的綜合能力。 畢業(yè)設計(論文) 基于 VC++的圖像處理系統(tǒng) 設計與實現(xiàn) VC + + based Image Processing System Design and Implementation 班級