⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 skinedit.cpp

📁 网狐棋牌(家园版)最新版本7.1.1源代码,共享组件源码
💻 CPP
字号:
#include "Stdafx.h"
#include "SkinEdit.h"

//////////////////////////////////////////////////////////////////////////

//宏定义
#define DEF_FOCUSTX_COLOR			RGB(255,0,0)							//默认颜色
#define DEF_FOCUSBK_COLOR			RGB(255,255,0)							//默认颜色
#define DEF_NOFOCUSTX_COLOR			RGB(10,10,10)							//默认颜色
#define DEF_NOFOCUSBK_COLOR			RGB(255,255,255)						//默认颜色
#define DEF_DISFOCUSTK_COLOR		RGB(50,50,50)							//默认颜色
#define DEF_DISFOCUSBK_COLOR		RGB(125,125,125)						//默认颜色

#define DEF_FOCUSTX_COLOR_EX		RGB(255,0,0)							//默认颜色
#define DEF_FOCUSBK_COLOR_EX		RGB(255,255,0)							//默认颜色
#define DEF_NOFOCUSTX_COLOR_EX		RGB(10,10,10)							//默认颜色
#define DEF_NOFOCUSBK_COLOR_EX		RGB(255,255,255)						//默认颜色
#define DEF_DISFOCUSTK_COLOR_EX		RGB(50,50,50)							//默认颜色
#define DEF_DISFOCUSBK_COLOR_EX		RGB(125,125,125)						//默认颜色

//静态变量
CSkinEditAttribute					CSkinEdit::m_SkinAttribute;				//界面属性

//////////////////////////////////////////////////////////////////////////

IMPLEMENT_DYNAMIC(CSkinEdit, CEdit)

BEGIN_MESSAGE_MAP(CSkinEdit, CEdit)
	ON_WM_SETFOCUS()
	ON_WM_KILLFOCUS()
	ON_WM_CTLCOLOR_REFLECT()
END_MESSAGE_MAP()

//////////////////////////////////////////////////////////////////////////

//构造函数
CSkinEditAttribute::CSkinEditAttribute() : CSkinAttribute(TEXT("CSkinEdit"))
{
	//初始化变量
	m_crFocusTX=DEF_FOCUSTX_COLOR;
	m_crFocusBK=DEF_FOCUSBK_COLOR;
	m_crNoFocusTX=DEF_NOFOCUSTX_COLOR;
	m_crNoFocusBK=DEF_NOFOCUSBK_COLOR;
	m_crDisFocusTK=DEF_DISFOCUSTK_COLOR;
	m_crDisFocusBK=DEF_DISFOCUSBK_COLOR;

	//注册属性
	RegisterAttribute(SKIN_EDIT_CRFOCUSTX,&m_crFocusTX,false);
	RegisterAttribute(SKIN_EDIT_CRFOCUSBK,&m_crFocusBK,false);
	RegisterAttribute(SKIN_EDIT_CRNOFOCUSTX,&m_crNoFocusTX,false);
	RegisterAttribute(SKIN_EDIT_CRNOFOCUSBK,&m_crNoFocusBK,false);
	RegisterAttribute(SKIN_EDIT_CRDISFOCUSTX,&m_crDisFocusTK,false);
	RegisterAttribute(SKIN_EDIT_CRDISFOCUSBK,&m_crDisFocusBK,false);

	return;
}

//析构函数
CSkinEditAttribute::~CSkinEditAttribute() 
{
}

//加载配置
bool __cdecl CSkinEditAttribute::LoadSkinOption()
{
	//读取字体颜色
	m_crFocusTX=ReadColor(SKIN_EDIT_CRFOCUSTX,DEF_FOCUSTX_COLOR);
	m_crFocusBK=ReadColor(SKIN_EDIT_CRFOCUSBK,DEF_FOCUSBK_COLOR);
	m_crNoFocusTX=ReadColor(SKIN_EDIT_CRNOFOCUSTX,DEF_NOFOCUSTX_COLOR);
	m_crNoFocusBK=ReadColor(SKIN_EDIT_CRNOFOCUSBK,DEF_NOFOCUSBK_COLOR);
	m_crDisFocusTK=ReadColor(SKIN_EDIT_CRDISFOCUSTX,DEF_DISFOCUSTK_COLOR);
	m_crDisFocusBK=ReadColor(SKIN_EDIT_CRDISFOCUSBK,DEF_DISFOCUSBK_COLOR);

	//建立对象
	m_brFocus.DeleteObject();
	m_brNoFocus.DeleteObject();
	m_brDisbale.DeleteObject();
	m_brFocus.CreateSolidBrush(m_crFocusBK);
	m_brNoFocus.CreateSolidBrush(m_crNoFocusBK);
	m_brDisbale.CreateSolidBrush(m_crDisFocusBK);

	return true;
}

//保存配置
bool __cdecl CSkinEditAttribute::SaveSkinOption()
{
	WriteColor(SKIN_EDIT_CRFOCUSTX,m_crFocusTX);
	WriteColor(SKIN_EDIT_CRFOCUSBK,m_crFocusBK);
	WriteColor(SKIN_EDIT_CRNOFOCUSTX,m_crNoFocusTX);
	WriteColor(SKIN_EDIT_CRNOFOCUSBK,m_crNoFocusBK);
	WriteColor(SKIN_EDIT_CRDISFOCUSTX,m_crDisFocusTK);
	WriteColor(SKIN_EDIT_CRDISFOCUSBK,m_crDisFocusBK);
	return true;
}

//////////////////////////////////////////////////////////////////////////

//构造函数
CSkinEdit::CSkinEdit()
{
	m_bFocus=false;
}

//析构函数
CSkinEdit::~CSkinEdit()
{
}

//绘画控件
HBRUSH CSkinEdit::CtlColor(CDC * pDC, UINT nCtlColor)
{
	pDC->SetBkMode(OPAQUE);
	if (IsWindowEnabled())
	{
		if (m_bFocus) 
		{
			pDC->SetTextColor(m_SkinAttribute.m_crFocusTX);
			pDC->SetBkColor(m_SkinAttribute.m_crFocusBK);
			return m_SkinAttribute.m_brFocus;
		}
		pDC->SetTextColor(m_SkinAttribute.m_crNoFocusTX);
		pDC->SetBkColor(m_SkinAttribute.m_crNoFocusBK);
		return m_SkinAttribute.m_brNoFocus;
	}
	pDC->SetTextColor(m_SkinAttribute.m_crDisFocusBK);
	pDC->SetBkColor(m_SkinAttribute.m_crDisFocusBK);
	return m_SkinAttribute.m_brDisbale;
}

//得到焦点
void CSkinEdit::OnSetFocus(CWnd * pOldWnd)
{
	m_bFocus=true;
	Invalidate(TRUE);
	__super::OnSetFocus(pOldWnd);
}

//失去焦点
void CSkinEdit::OnKillFocus(CWnd * pNewWnd)
{
	m_bFocus=false;
	Invalidate(TRUE);
	__super::OnKillFocus(pNewWnd);
}

//////////////////////////////////////////////////////////////////////////

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -