2008年02月
滑块已经基本实现我们的要求了。
接下来实现基本功能:
1.RGBHSV(新建一个类 CColorConvert)
头文件ColorConvert.h
// ColorConvert.h: interface for the CColorConvert class.
//
/**///////////////////////////////////////////////////////////////////////
#if !defined(AFX_COLORCONVERT_H__C06B43EE_791D_407B_ADC2_3A3EA91FE13C__INCLUDED_)
#define AFX_COLORCONVERT_H__C06B43EE_791D_407B_ADC2_3A3EA91FE13C__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
typedef struct...{
int R;
int G;
阅读全文>
发表于 @ 2008年02月23日 10:52:00|评论(loading...)|编辑
上一篇中,滑块的基本功能已经实现了。但是外观上还不能满足我们的要求。
这里我们将主要完善滑块轨道的外观:
这里我们要准备三副图片 存放在/res/文件夹下,分别表示色调,饱和度和亮度
H.gif S.gif B.gif
这里我采用的gif图片,而不是bmp位图;主要是色彩上gif更能满足我的要求。
我利用IPicture将这图片加载到程序中,当然还可以用GDI+实现。
自定义函数:CNewSlider::DrawBKChannel(CDC *pDc, CRect rc)
阅读全文>
发表于 @ 2008年02月23日 10:43:00|评论(loading...)|编辑
TM皮肤调色板有三个滑块,分别是调节色调,饱和度, 亮度来用的。
MFC自己的滑块虽然可以达到我们的事件的需求;但是外观上不如TM的好看。
接下来我要实现这个滑块的效果,由于毕业以后就没搞过VC了,基本忘得差不多了;基本思想还是要从CSliderCtrl派生出一个新的类,在这个类里需要做以下几件事:
1,重绘滑块
2,重绘轨道
3,要求控件透明,因为我们看到TM的滑块控件也是透明的,因此我们也有必要实现该功能。
这里就偷懒了,因为已经有巨人写了这样的控件,我们先把这个巨人的东西借来用用吧:
可以到这里看看巨人的东西:http://www.codeproject.com/KB/miscctrl/transparentslider.aspx
测试效果:
现在的效果比MFC自带的要好看一些了,但是与TM的还有一段差距;还需要我们站在巨人肩膀上去改进。
今天暂时站在巨人肩膀上,明天继续改进..
阅读全文>
发表于 @ 2008年02月22日 11:13:00|评论(loading...)|编辑
先看看TM2008的皮肤调色板:
虽然简单,也还是很漂亮的。
接下来,我将一步一步去(非完全)实现该调色板。
建立MFC工程
添加:
typedef struct {
COLORREF crColour;
TCHAR *szName;
} ColourTableEntry;
新建类 CColorPanel 继承CWnd;给该类添加一个变量:CRect m_WindowRect;用于保存该面板的大小;在添加CWnd* m_pParent; 用于保存父窗体指针。添加静态变量:
static ColourTableEntry m_crColours[];
ColourTableEntry CColorPanel::m_crColours[] ={
{RGB(147,210,247), _T("Blue") },
{RGB(137,184,224), _T("GrayBlue") },
{RGB(189,103,234), _T("Purple") },
{RGB(110,196阅读全文>
发表于 @ 2008年02月21日 13:16:00|评论(loading...)|编辑