dlgcolorize.cpp

来自「君正早期ucos系统(只有早期的才不没有打包成库),MPLAYER,文件系统,图」· C++ 代码 · 共 119 行

CPP
119
字号
// DlgColorize.cpp : implementation file
//

#include "stdafx.h"
#include "demo.h"
#include "DlgColorize.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// DlgColorize dialog


DlgColorize::DlgColorize(CWnd* pParent /*=NULL*/)
	: CDialog(DlgColorize::IDD, pParent)
{
	//{{AFX_DATA_INIT(DlgColorize)
	m_hue = 0;
	m_sat = 0;
	m_r = 0;
	m_g = 0;
	m_b = 0;
	m_blend = 50;
	//}}AFX_DATA_INIT
}


void DlgColorize::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(DlgColorize)
	DDX_Control(pDX, IDC_RADIO3, m_rbHSL);
	DDX_Control(pDX, IDOK, m_ok);
	DDX_Control(pDX, IDCANCEL, m_canc);
	DDX_Control(pDX, IDCOLORS, m_colors);
	DDX_Text(pDX, IDC_EDIT1, m_hue);
	DDX_Text(pDX, IDC_EDIT2, m_sat);
	DDX_Text(pDX, IDC_EDIT3, m_r);
	DDX_Text(pDX, IDC_EDIT4, m_g);
	DDX_Text(pDX, IDC_EDIT5, m_b);
	DDX_Text(pDX, IDC_EDIT8, m_blend);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(DlgColorize, CDialog)
	//{{AFX_MSG_MAP(DlgColorize)
	ON_BN_CLICKED(IDCOLORS, OnColors)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// DlgColorize message handlers

BOOL DlgColorize::OnInitDialog() 
{
	CDialog::OnInitDialog();

	m_ok.SetIcon(IDI_G,BS_LEFT);
	m_canc.SetIcon(IDI_R,BS_LEFT);
	m_colors.SetIcon(IDI_B,BS_LEFT);
	
	m_rbHSL.SetCheck(1);
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void DlgColorize::OnOK() 
{
	m_bHSL = m_rbHSL.GetCheck();
	
	CDialog::OnOK();
}

void DlgColorize::OnColors() 
{
	UpdateData(1);

	int bHSL = m_rbHSL.GetCheck();

	COLORREF c;
	RGBQUAD rgb,hsl;

	if (bHSL){
		hsl.rgbRed = m_hue;
		hsl.rgbGreen = m_sat;
		hsl.rgbBlue = 128;
		rgb = CxImage::HSLtoRGB(hsl);
		c = RGB(rgb.rgbRed,rgb.rgbGreen,rgb.rgbBlue);
	} else {
		c = RGB(m_r,m_g,m_b);
	}

	CColorDialog dlg(c,	CC_FULLOPEN | CC_ANYCOLOR, this);

	if (dlg.DoModal() == IDOK){
		c = dlg.GetColor();
		if (bHSL){
			rgb.rgbRed = GetRValue(c);
			rgb.rgbGreen = GetGValue(c);
			rgb.rgbBlue = GetBValue(c);
			hsl = CxImage::RGBtoHSL(rgb);
			m_hue = hsl.rgbRed;
			m_sat = hsl.rgbGreen;
		} else {
			m_r=GetRValue(c);
			m_g=GetGValue(c);
			m_b=GetBValue(c);
		}
	}

	UpdateData(0);
}

⌨️ 快捷键说明

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