1. 程式人生 > >MFC 新增面板庫方法步驟

MFC 新增面板庫方法步驟

專案中使用的庫檔案,下載地址:

https://download.csdn.net/download/byh371256/10741951

//VC面板庫檔案SkinPlusPlusDLL實現步驟:
1、在stdafx.h中  引入標頭檔案和庫檔案  並且工程中新增標頭檔案SkinPlusPlus.h

    #include "SkinPlusPlus.h"
    #pragma comment(lib, "SkinPlusPlusDLL.lib")

2、在App類在其虛擬函式InitInstance()中 AfxEnableControlContainer(); 後面新增如下程式碼

    
    #ifdef _AFXDLL
        Enable3dControls();
    #else
        Enable3dControlsStatic();
    #endif

        InitializeSkin(("Minimized.ssk"));//初始化

3、過載App的ExitInstance函式新增ExitSkin()函式

    在APP的.h標頭檔案中
    virtual int ExitInstance();//重寫宣告
    //重寫實現
    int CConnectSerialPortApp::ExitInstance()
    {
        ExitSkin();
        return CWinApp::ExitInstance();
    }

4、在介面初始化函式  OnInitDialog()中新增

LoadSkin("XPCorona.ssk");
////////////////////初始化面板庫檔案   
    srand(time(NULL)); //使用srand()用來設定rand()產生隨機數時的隨機數種子  用time函式值(即當前時間),
                        //因為兩次呼叫rand()函式的時間通常是不同的,這樣就可以保證隨機性了。
    int nRand = rand() % 3; 
    theApp.m_nRand = nRand;
    switch (nRand) 
    { 
    case 0: 
        InitializeSkin("Minimized.ssk"); 
        break; 
    case 1: 
        InitializeSkin("SoftCrystal.ssk"); 
        break; 
    case 2: 
        InitializeSkin("XPCorona.ssk"); 
        break; 
    } 
    //載入面板庫檔案
    BOOL CConnectSerialPortDlg::OnInitDialog()
    {
        CDialogEx::OnInitDialog();

        switch (theApp.m_nRand) 
        { 
        case 0: 
            LoadSkin("Minimized.ssk"); 
            break; 
        case 1: 
            LoadSkin("SoftCrystal.ssk"); 
            break; 
        case 2: 
            LoadSkin("XPCorona.ssk"); 
            break; 
        } 
    } 

其中一種效果圖: