标签:
基于MFC建立动态链接库工程 [SkinDll]
【Step1 资源导入】导入已经编辑好的位图资源,定义好标识符,设置工程为MFC静态库编译方式
#define IDB_LEFTTITLE 1000
#define IDB_MIDTITLE 1001
#define IDB_RIGHTTITLE 1002
#define IDB_LEFTBAND 1003
#define IDB_BOTTOMBAND 1004
#define IDB_RIGHTBAND 1005
#define IDB_MINBUTTON 1006
#define IDB_MAXBUTTON 1007
#define IDB_CLOSEBUTTON 1008
#define IDB_MINHOTBUTTON 1009
#define IDB_MAXHOTBUTTON 1010
#define IDB_CLOSEHOTBUTTON 1011
#define IDB_LEFTBOTTOM 1012
#define IDB_RIGHTBOTTOM 1013
#define IDB_BACKGROUND 1014
【Step2 CFomrPart类】CFomrPart类 用于描述窗口中每个部分使用的位图资源以及相对位置
class CFormPart{
pulic:
HBITMAP m_hBitmap;
CPoint m_pos;
};
【Step3 CSkin类】CSkin类 用于主体功能的实现
该类的成员变量有
UINT m_PartCount; // 窗口模块分割的数量
CFormPart* m_pParts; // 每个窗口模块对应的CFormPart类指针
COLORREF m_MenuBkColor; // 菜单背景颜色
COLORREF m_MenuSelColor; // 菜单选中颜色
BOOL DrawRoud; // 是否绘制圆角
void LoadBitmapRes(); //加载位图资源
void SetButtonPos(); // 设置窗口按钮的位置
CSkin(); // 构造函数 用于数据的初始化 以及调用 LoadBitmapRes()加载位图资源 SetButtonPos()设置按钮位置
~CSkin() // 析构函数
virtual HBITMAP GetBitmapRes(UINT Index); // 获取指定的位图资源
virtual CPoint GetButtonPos(UINT Index); // 获取指定的按钮位置
virtual COLORREF GetMenuBkColor(); // 获取菜单背景颜色
virtual COLORREF GetMenuSelColor(); // 获取菜单选中的颜色
// 在动态连接库中导出类,若希望该类中的方法被访问,则该方法必须被定义成虚函数,才能被导出访问
【Step4 在def文件中导出CSkin类】
[00002]-[2015-06-27]-[00]-[MFC 动态链接库 制作一种对话框窗口皮肤(一)]
标签:
原文地址:http://www.cnblogs.com/Auris/p/4604858.html