擴 展Visual c MFC 類 庫

2021-09-06 01:22:50 字數 1504 閱讀 2404

----

visual c++ 提 供 了 功 能 強 大 的 類 庫, 基 本 上 應 用 開 發 的 要 求, 但 對 於 某 些 特 殊 要 求 的 界 面, 如 圖 像 兼 文 字 的 按 紐, 列 表 框 中 插 入 圖 像, 中 國 式 報 表 等 等, 仍 顯 得 力 不 從 心, 因 而 很 有 必 要 創 建 擴 展mfc 類 庫, 以 滿 足 實 際 開 發 的 需 求。

----

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

----

lpdrawitemstruct 結 構:

typedef struct tagdrawitemstruct
drawitemstruct;
----

最 重 要 的 參 數 是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)

----

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

CI框架擴充套件系統類庫

ci框架不支援像yii2框架那樣,可以直接在controllers下建立commoncontroller並繼承父類,那麼我們想要做登入控制或許可權控制時,直接在父類控制器操作是不合理的。這時比較方便的方法就是擴充套件父類的ci controller.在core目錄下建立乙個自定義類,以my 為字首,...

類擴充套件(class extension)

oc裡面類擴充套件 類似protected和private 的作用。1.類擴充套件是一種特殊的類別,在定義的時候不需要加名字。下面 定義了類things的擴充套件。inte ce things end 2.類擴充套件作用 1 可以把暴露給外面的可讀屬性改為讀寫方便類內部修改。公有可讀 私有可寫的屬性...

oc 類擴充套件

封裝的特性就是暴露公共介面給外邊呼叫,c 通過public定義公共方法提供給外面呼叫,protected和private定義的方法只能在類裡面使用,外面不能呼叫,若外面呼叫,編譯器直接報錯,對於變數也同理。oc裡面類擴充套件類似protected和private的作用。1.類擴充套件是一種特殊的類別...