[MFC美化] SkinMagic使用详解2- SkinMagic常用函数介绍

SkinMagic常用函数介绍

(1)InitSkinMagicLib函数:初始化SkinMagic

int InitSkinMagicLib( //初始化SkinMagic工具库
  HINSTANCE hInstance, //应用程序句柄
  char* szApplication , //皮肤文件中定义的应用程序名,置为NULL即可
  char* szRegCode, //SkinMagic的使用注册码。若无置为NULL
  char* szReserved2); //保留位,为NULL

(2)LoadSkinFile函数:加载皮肤文件

LoadSkinFile(LPCTSTR lpSkinFile)//要加载的皮肤文件名  

(3)LoadSkinFromResource函数:从资源加载皮肤文件

int LoadSkinFromResource(  
    HMODULE hModule, //包含皮肤文件的模块句柄,若NULL表面在本模块中  
   char* lpSkinName , //皮肤资源的名称  
    char* lpType); //资源的类型  

(4)SetWindowSkin函数:为标准对话框加载皮肤(比如文档)

int SetWindowSkin( HWND hWnd , //要换肤的对话框句柄  
  LPCTSTR lpSkinName )//皮肤名  

(5)SetDialogSkin函数:为对话框加载皮肤文件(比如基本对话框Dlg)

int SetDialogSkin( HWND hWnd , //要换肤的对话框句柄  
 LPCTSTR lpSkinName )//皮肤名  

(6)SetShapeWindowSkin函数:为shape对话框加载皮肤文件(这个对话框是固定大小,无法进行拉伸缩小)

int SetShapeWindowSkin(  
    HWND  hWnd,          //对话框句柄      
  LPCTSTR pszName)     //shape界面皮肤名. 

(7)ExitSkinMagicLib函数:释放资源

void ExitSkinMagicLib()//释放资源文件 

 

SkinMagic其他函数介绍

(1)RemoveDialogSkin();停止自动给窗体加载皮肤,针对SetDialogSkin  

(2)RemoveWindowSkin(HWND hWnd);去掉指定窗口皮肤,当某个窗体或者控件不需要皮肤时可以使用此函数  

(3)EnableWindowScrollbarSkin(HWND hWnd, SB_BOTH) 给指定窗体加载滚动条皮肤。比较适用于自绘的控件。

(4)DisableWindowScrollbarSkin(HWND hWnd) 使指定窗体停止加载滚动条皮肤。

(5)SetControlSkin()为单个控件换肤

int SetControlSkin(  
    HWND  hWnd,           //控件句柄  
    LPCTSTR pszName,       //皮肤文件里面的皮肤对象  
    LPCTSTR pszOwnerSkinName //皮肤文件里面的窗口对象  
);  

 

注意事项:

1. 当自绘控件与加载皮肤的窗体冲突时的解决方法

解决方法:先对窗体加载皮肤,再建立控件自绘的功能。

具体的做法是: 1)DoDataExchange取消自绘控件实例与资源控件ID的关联

        2)在SetSingleDialogSkin之后自绘控件实例采用SubclassDlgItem的方法与资源控件ID关联。

VERIFY( 1 == SetSingleDialogSkin(this->GetSafeHwnd(), _T("Dialog") ) );
m_list.SubclassDlgItem(IDC_LIST1,this);

 

 

参考链接:

http://blog.csdn.net/nonecode/article/details/7952065

http://blog.csdn.net/miao2034056/article/details/9196411

 

posted @ 2016-11-24 09:26  我自逍遥笑  阅读(1034)  评论(0编辑  收藏  举报