- 一個ColorRef是背景色,每一個背景都適用。
- 一個ColorRef是給CrossTalk中間的方塊。
- Ca210*是給Nits做自動亮度追縱用的。
最後,可以發現,在*.h檔中,罕見的出現了空函數。這樣的設計在於這些特殊的函數,必須在BkMaker有virtual的介面,可以配合「繼承」使用「動態連結」的方式操作其它的子類別的函式實作。
BkMaker.h
#ifndef BKMAKER_H #define BKMAKER_H #include "CColorRef.h" #include "CA210.h" enum NitsDirect{ND_NoDefine = 0, ND_Pos, ND_Neg}; class BkMaker { //smart ptr int* ptr_i; int* cnt; public: const BOOL IsPtrToNull() const; const int GetPtrCnt() const; public: BkMaker(); BkMaker(const BkMaker& bkN); ~BkMaker(); BkMaker& operator=(const BkMaker& sp); //背景色 private: ColorRef m_BkColor; public: const ColorRef _GetBkColor() const; void _SetBkColor(const ColorRef&); //共用介面 public: virtual void Draw(CPaintDC& dc); //Crosstalk的介面 protected: ColorRef m_rectColor; CRect m_centerRect; public: virtual void CT_SetRect(const CRect& _rect, const ColorRef& clr){ }; //Nits的介面 protected: CWnd* m_pdlgcWnd; Ca210* m_pCa210; public: virtual void NT_SetWnd(CWnd* cWnd){ }; virtual void NT_SetCa(Ca210* pCa){ }; protected: NitsDirect m_NitsDirect; int m_NitsLv; //參數 public: virtual void NT_SetNitsLv(const int&){ }; virtual void NT_colorReviseByNits(ColorRef&){ }; }; #endif
沒有留言:
張貼留言