📄 skindlg.cpp
字号:
// SkinDlg.cpp : 实现文件
//
#include "stdafx.h"
#include "LinkPanel.h"
#include "SkinDlg.h"
// CSkinDlg 对话框
IMPLEMENT_DYNAMIC(CSkinDlg, CDialog)
CSkinDlg::CSkinDlg(CWnd* pParent /*=NULL*/)
: CDialog(CSkinDlg::IDD, pParent)
{
}
CSkinDlg::~CSkinDlg()
{
}
void CSkinDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CSkinDlg, CDialog)
END_MESSAGE_MAP()
// CSkinDlg 消息处理程序
BOOL CSkinDlg::SetSkin(CString file)
{
m_skinWin.LoadSkin( file );
m_btnres.LoadSkin( file );
if ( m_bFirst )
{
m_skinWin.InstallSkin( this );
EnumChildWindows( m_hWnd, EnumChildProc, (LPARAM)this );
m_bFirst = FALSE;
}
SetWindowPos( 0, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE |SWP_FRAMECHANGED );
return TRUE;
}
BOOL CSkinDlg::SubClassButton( HWND hwnd )
{
CSkinButton * btn = new CSkinButton();
CWnd* pWnd = CWnd::FromHandlePermanent(hwnd);
if ( pWnd == NULL)
{
//btn->SubclassWindow(hwnd);
btn->SetResource(&m_btnres);
return TRUE;
}
return FALSE;
}
void CSkinDlg::SetStyle()
{
CString sPath = _T("");
GetModuleFileName(AfxGetInstanceHandle(), sPath.GetBuffer(MAX_PATH), MAX_PATH);
sPath.ReleaseBuffer(MAX_PATH);
sPath = sPath.Left(sPath.ReverseFind('\\') + 1);
if(!m_bStyle)
sPath = sPath + _T("skin\\neostyle\\theme.ini");
else
sPath += _T("skin\\xpstyle\\theme.ini");
SetSkin(sPath);
}
BOOL CALLBACK CSkinDlg::EnumChildProc( HWND hwnd, // handle to child window
LPARAM lParam // application-defined value
)
{
char classname[200];
CSkinDlg *dlg = (CSkinDlg*)lParam;
DWORD style;
GetClassName( hwnd, classname, 200 );
style = GetWindowStyle( hwnd );
if ( strcmp( classname, "Button" ) == 0 )
{
style = (UINT)GetWindowLong(hwnd, GWL_STYLE) & 0xff;
if ( style == BS_PUSHBUTTON || style == BS_DEFPUSHBUTTON )
dlg->SubClassButton( hwnd );
}
return TRUE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -