📄 coloroptions.cpp
字号:
// ColorOptions.cpp : implementation file
//
#include "stdafx.h"
#include "Netmsg.h"
#include "ColorOptions.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CColorOptions property page
IMPLEMENT_DYNCREATE(CColorOptions, CPropertyPage)
CColorOptions::CColorOptions() : CPropertyPage(CColorOptions::IDD)
{
//{{AFX_DATA_INIT(CColorOptions)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
crNormalText = GetColor(COL_NORMALTEXT);
crNotifyText = GetColor(COL_NOTIFYTEXT);
crDisabled = GetColor(COL_DISABLED);
crLineFrames = GetColor(COL_LINEFRAMES);
crLightItems = GetColor(COL_LIGHTITEMS);
crBtnBack = GetColor(COL_BTNBACK);
crBtnActive = GetColor(COL_BTNACTIVE);
crBtnOver = GetColor(COL_BTNOVER);
}
CColorOptions::~CColorOptions()
{
}
void CColorOptions::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CColorOptions)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CColorOptions, CPropertyPage)
//{{AFX_MSG_MAP(CColorOptions)
ON_WM_PAINT()
ON_WM_LBUTTONUP()
ON_BN_CLICKED(IDC_RESTOREDEFAULT, OnRestoredefault)
ON_BN_CLICKED(IDC_GETWINCOLORS, OnGetwincolors)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CColorOptions message handlers
void CColorOptions::OnPaint()
{
CPaintDC dc(this); // device context for painting
CBitmap bmExample;
bmExample.LoadBitmap(IDB_DLGEXAMPLE);
dc.DrawState(CPoint(70, 52), CSize(216, 182), bmExample, NULL);
bmExample.DeleteObject();
dc.MoveTo(235, 62);
dc.LineTo(305, 38);
dc.MoveTo(272, 153);
dc.LineTo(305, 153);
dc.MoveTo(262, 63);
dc.LineTo(305, 75);
dc.MoveTo(102, 202);
dc.LineTo(53, 258);
dc.MoveTo(155, 154);
dc.LineTo(53, 127);
dc.MoveTo(234, 214);
dc.LineTo(177, 241);
dc.MoveTo(238, 222);
dc.LineTo(254, 241);
dc.MoveTo(264, 222);
dc.LineTo(335, 241);
dc.FillSolidRect(310, 22, 48, 28, RGB(0, 0, 0));
dc.FillSolidRect(311, 23, 46, 26, crNotifyText);
dc.FillSolidRect(310, 65, 48, 28, RGB(0, 0, 0));
dc.FillSolidRect(311, 66, 46, 26, crLineFrames);
dc.FillSolidRect(310, 140, 48, 28, RGB(0, 0, 0));
dc.FillSolidRect(311, 141, 46, 26, crLightItems);
dc.FillSolidRect(1, 114, 48, 28, RGB(0, 0, 0));
dc.FillSolidRect(2, 115, 46, 26, crNormalText);
dc.FillSolidRect(1, 248, 48, 28, RGB(0, 0, 0));
dc.FillSolidRect(2, 249, 46, 26, crDisabled);
dc.FillSolidRect(150, 248, 48, 28, RGB(0, 0, 0));
dc.FillSolidRect(151, 249, 46, 26, crBtnBack);
dc.FillSolidRect(230, 248, 48, 28, RGB(0, 0, 0));
dc.FillSolidRect(231, 249, 46, 26, crBtnActive);
dc.FillSolidRect(310, 248, 48, 28, RGB(0, 0, 0));
dc.FillSolidRect(311, 249, 46, 26, crBtnOver);
// Do not call CPropertyPage::OnPaint() for painting messages
}
void CColorOptions::OnLButtonUp(UINT nFlags, CPoint point)
{
bool bModified = false;
CRect rcNotifyText;
CRect rcLineFrames;
CRect rcLightItems;
CRect rcNormalText;
CRect rcDisabled;
CRect rcBtnActive;
CRect rcBtnOver;
CRect rcBtnBack;
rcNotifyText.SetRect(310, 22, 310 + 48, 22 + 28);
rcLineFrames.SetRect(310, 65, 310 + 48, 65 + 28);
rcLightItems.SetRect(310, 140, 310 + 48, 140 + 28);
rcNormalText.SetRect(1, 114, 1 + 48, 114 + 28);
rcDisabled.SetRect(1, 248, 1 + 48, 248 + 28);
rcBtnBack.SetRect(151, 248, 151 + 48, 248 + 28);
rcBtnActive.SetRect(230, 248, 230 + 48, 248 + 28);
rcBtnOver.SetRect(310, 248, 310 + 48, 248 + 28);
if (rcNotifyText.PtInRect(point))
{
crNotifyText = MyChooseColor(GetColor(COL_NOTIFYTEXT));
bModified = true;
}
else if (rcLineFrames.PtInRect(point))
{
crLineFrames = MyChooseColor(GetColor(COL_LINEFRAMES));
bModified = true;
}
else if (rcLightItems.PtInRect(point))
{
crLightItems = MyChooseColor(GetColor(COL_LIGHTITEMS));
bModified = true;
}
else if (rcNormalText.PtInRect(point))
{
crNormalText = MyChooseColor(GetColor(COL_NORMALTEXT));
bModified = true;
}
else if (rcDisabled.PtInRect(point))
{
crDisabled = MyChooseColor(GetColor(COL_DISABLED));
bModified = true;
}
else if (rcBtnBack.PtInRect(point))
{
crBtnBack = MyChooseColor(GetColor(COL_BTNBACK));
bModified = true;
}
else if (rcBtnOver.PtInRect(point))
{
crBtnOver = MyChooseColor(GetColor(COL_BTNOVER));
bModified = true;
}
else if (rcBtnActive.PtInRect(point))
{
crBtnActive = MyChooseColor(GetColor(COL_BTNACTIVE));
bModified = true;
}
if (bModified)
{
SetModified();
Invalidate();
}
CPropertyPage::OnLButtonUp(nFlags, point);
}
COLORREF CColorOptions::MyChooseColor(COLORREF crColor)
{
CHOOSECOLOR cc;
static COLORREF acrCustClr[16];
ZeroMemory(&cc, sizeof(CHOOSECOLOR));
cc.lStructSize = sizeof(CHOOSECOLOR);
cc.hwndOwner = GetSafeHwnd();
cc.lpCustColors = (LPDWORD) acrCustClr;
cc.rgbResult = crColor;
cc.Flags = CC_FULLOPEN | CC_RGBINIT;
if (ChooseColor(&cc))
{
return cc.rgbResult;
}
return crColor;
}
BOOL CColorOptions::OnApply()
{
::SetColor(COL_NOTIFYTEXT, crNotifyText);
::SetColor(COL_LINEFRAMES, crLineFrames);
::SetColor(COL_LIGHTITEMS, crLightItems);
::SetColor(COL_NORMALTEXT, crNormalText);
::SetColor(COL_DISABLED, crDisabled);
::SetColor(COL_BTNBACK, crBtnBack);
::SetColor(COL_BTNACTIVE, crBtnActive);
::SetColor(COL_BTNOVER, crBtnOver);
::RedrawEntireApplication();
return CPropertyPage::OnApply();
}
void CColorOptions::OnOK()
{
::SetColor(COL_NOTIFYTEXT, crNotifyText);
::SetColor(COL_LINEFRAMES, crLineFrames);
::SetColor(COL_LIGHTITEMS, crLightItems);
::SetColor(COL_NORMALTEXT, crNormalText);
::SetColor(COL_DISABLED, crDisabled);
::SetColor(COL_BTNBACK, crBtnBack);
::SetColor(COL_BTNACTIVE, crBtnActive);
::SetColor(COL_BTNOVER, crBtnOver);
::RedrawEntireApplication();
CPropertyPage::OnOK();
}
void CColorOptions::OnRestoredefault()
{
crDisabled = RGB(214, 215, 204);
crLightItems = RGB(214, 223, 247);
crLineFrames = RGB(0, 73, 181);
crNotifyText = RGB(181, 203, 239);
crNormalText = RGB(0, 0, 0);
crBtnOver = RGB(224, 172, 44);
crBtnActive = RGB(0, 0, 255);
crBtnBack = RGB(255, 251, 240);
SetModified();
Invalidate();
}
void CColorOptions::OnGetwincolors()
{
crNormalText = GetSysColor(COLOR_WINDOWTEXT);
crNotifyText = GetSysColor(COLOR_CAPTIONTEXT);
crLineFrames = GetSysColor(COLOR_ACTIVECAPTION);
crDisabled = GetSysColor(COLOR_GRAYTEXT);
crLightItems = GetSysColor(COLOR_3DFACE);
crBtnBack = crLightItems;
crBtnActive = crLineFrames;
crBtnOver = GetSysColor(COLOR_INACTIVECAPTION);
SetModified();
Invalidate();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -