blob: 98f335e1e9a524e76f663adc3b6eac778fa9c27f [file] [log] [blame]
// 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);
}