Visual C 開發教程 如何實現MFC自繪製

2021-10-10 21:17:32 字數 2400 閱讀 2022

visual c++提 供 了 功 能 強 大 的 類 庫, 基 本 上 應 用 開 發 的 要 求, 但 對 於 某 些 特 殊 要 求 的 界 面, 如 圖 像 兼 文 字 的 按 紐, 列 表 框 中 插 入 圖 像, 中 國 式 報 表 等 等, 仍 顯 得 力 不 從 心, 因 而 很 有 必 要 創 建 擴 展mfc 類 庫, 以 滿 足 實 際 開 發 的 需 求。xtreme toolkit pro是mfc開發中最全面介面控制項套包,它提供了windows開發所需要的11種主流的visual c++ mfc控制項,包括command bars、controls、chart pro、calendar、docking pane、property grid、report control、shortcut bar、syntax edit、skin framework 和task panel。

---- mfc 支 持 自 繪 制(owner-draw) 概 念, 自 繪 制 的 控 制 類, 通 過 調 用drawitem() 函 數 實 現 控 件 的 繪 制, 由 於 控 件 繪 制, 消 息 檢 測 和 消 息 比 較 代 碼 是 在 控 件 中 實 現 而 不 足 在 擁 有 控 件 的 窗 口 中 實 現, 因 而 叫 自 繪 制。 因 而 通 過 重 載drawitem(lpdrawitemstruct 函 數 來 控 制 控 件 的 外 觀 和 行 為, 實 現 控 制 所 需 要 的 參 數, 都 包 含 在lpdrawitemstruct 結 構 中。

---- lpdrawitemstruct 結 構:

---- 最 重 要 的 參 數 是itemaction,itemstate,hdc,rcitem, 它 們 是 實 現 控 件 外 觀 繪 制, 消 息 響 應 所 必 須 的。

---- itemaction: 繪 制 動 作, 有 以 下 幾 種 取 值:oda_drawentire,oda_focus, oda_select.

---- itemstate: 狀 態, 有 以 下 幾 種 取 值:ods_checked,ods_disabled,ods_focus, ods_grayed,ods_selected,ods_default.

---- hdc: 設 備 環 境 的 句 柄。

---- rcitem: 控 件 外 觀 大 小 的 矩 形。

---- 下 面 給 出 一 個 基 於cbutton 類 的 圖 象button 類:cmybtn

---- 利 用mfc wizard 創 建 一 個 新 類cmybtn, 基 類 是cbutton

mybtn.h: 

class cmybtn : public cbutton

;mybtn.cpp

cmybtn::cmybtn()

void cmybtn::drawitem(lpdrawitemstruct lpdis)}}

void cmybtn::setbitmapid(uint id)

---- 利用cmybtn類**可以在應用系統中實現圖象文字按紐,在dialog中加入按紐 (idc_button1),(idc_button2)設定它們的屬性為 owner-draw.

利用resource editor 加入兩個圖象檔案,id值為:idb_bitmap1,idb_bitmap2。

class cws3dlg : public cdialog

;cmybtnm_btn1;

cmybtnm_btn2;

//定義圖象按紐

//}}afx_data

...protected:

virtual void dodataexchange(cdataexchange* pdx);

// ddx/ddv support

//}}afx_virtual

....

//}}afx_msg

declare_message_map()

};void cws3dlg::dodataexchange(cdataexchange* pdx)

}afx_data_map

} 在初始化**加入:

bool cws3dlg::oninitdialog()

---- 本 文 給 出 了 自 繪 制 類 的 實 現 代 碼, 讀 者 可 以 利 用 此 思 路 開 發 出 其 他 擴 展 類 庫, 豐 富 開 發 資 源。

mfc擴充套件類庫

在平時練習的時候我們可以自己手動進行,但是一旦接受一些專案,應用程式開發等,對介面的要求就會高出許多。這時候就有必要借助這些「半成品」實現介面美化提公升效率。這裡簡單介紹一下,具體可點進去檢視每個的詳情以及教程,案例!

bcgcontrolbar

bcgcontrolbar

如何學好Visual C

如何學好 c 是每個學習 c 語言的讀者所關心的問題,筆者結合多年來的學習和工作經驗,總結出以下幾點學習的方法 q 對於初學者來說,基礎是最重要的,因此首先應找一本基礎的 visual c 圖書,認真閱讀,從中學習 c 語言的基礎知識,為以後更進一步學習打下良好基礎。q 在學習過程中,要多練習 勤思...

Visual C 程式設計實用教程

前言 1 目錄一2 目錄二3 第一章 visual c 6.0概述 4 1.1 vc 6.0的新特性 4 1.2 整合環境及基本操作 7 1.3 選單功能介紹 9 1.4 工具欄的使用 17 1.5 文字編輯器的使用 18 1.6 資源與識別符號 23 1.7 本章小結 25 第二章 第乙個vc應用...

Visual C 開發(一) 入門

visual c 是常用的一種 windows 程式設計工具,是微軟日益成熟的視覺化軟體開發平台,可用於編寫c c 和 c cli 程式。概述 visual c 不是簡單的 c 編譯器,而是乙個由編輯器 編譯器 偵錯程式以及程式嚮導 類嚮導 classwizard 等元件整合的乙個視覺化開發環境。特...