• [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

  • 相关阅读:
    [Javascript] Object.freeze: using Object.freeze in function params to enforce immutabtility
    [Typescript] Index access types
    [Typescript] Making TypeScript Stick 6 infer, build a ConstructorArg Type
    [Typescript] Filtering properties out
    [TypeScript] Mapped Type
    [Typescript] TS Monorepo setup
    [Typescript] Extract & Exclude
    CSP2020洛谷模拟赛
    2020 CSPJ 初赛排列组合试题解析
    2020 CSPJ 入门组初赛试题和答案
  • 原文地址:https://www.cnblogs.com/zwh0214/p/6096478.html
Copyright © 2020-2023  润新知