MFC 新增面板庫方法步驟
阿新 • • 發佈:2018-11-01
專案中使用的庫檔案,下載地址:
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; } }
其中一種效果圖: