All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
初学来看:动态网页制作技术PHP的变量类型_php资料_编程技术
SQL Server得到表记录总数另类方法_[SQL Server教程]
NET环境下水晶报表使用总结_[Asp.Net教程]
PHP网页编码问题:任意字符集正常显示网页的方法_php资料_编程技术
C#教程:WebRequest类使用实例
数据库正规化和设计技巧(1)_mssql学习_编程技术
.Net,2.0,原汁原味读取注册表_[Asp.Net教程]
ASP.NET中文件上传下载方法集合_[Asp.Net教程]
Visual,Studio2005发布问题解决办法_[Asp.Net教程]
关于PHP无法连接MSSQL数据库的问题_[PHP教程]
Reading number is top 10 pictures
BingBingFan apple dew point photo gallery3
西方气质的东方美女2
NeedWallpaper4
美丽的风景--让你目瞪口呆
Desktop Wallpapers1
So beauty, will let you spray blood1
无题
西游四格漫画(三)
Shandong jinan is about to dismantle a one hundred-year history of the building
Sora aoi mirror memorial classics2
Download software ranking
Sora aoi's film--cangkong_Blue.Sky
致我们终将逝去的青春
Macromedia Dreamweaver 8
美女写真3
传奇私服架设教程
Rio big adventure
功夫熊猫2(上集)
Boxer's Top ten classic battle3
Boxer vs Yellow4
Eclipse 4.2.1 For Win32
qq published in(发表于) 2014/7/9 22:38:46 Edit(编辑)
visual c++中CColorDialog对话框的制作

visual c++中CColorDialog对话框的制作

visual c++中CColorDialog对话框的制作

CColorDialog对话框

CColorDialog是一个比较常用的对话框,它的功能是返回一种用户选择的颜色。CColorDialog对话框界面如图1所示。



图1 CcolorDialo g对话框

CColorDialog类中常用的成员函数如表1所示。



表1 CColorDialog类中常用的成员函数

函 数 名

说 明

GetColor

返回用户在对话框中选择颜色

GetSavedCustomColors

返回用户自定义的颜色

CColorDialog提供了GetColor成员函数,它可以返回用户在对话框中选择颜色。

请看下面的例子,制作一个可以显示用户选择颜色的类。



图2中界面上有很8个小格,每个小格填充了一种颜色,当用户单击某小格时,就会弹出如图1所示的CColorDialog对话框。用户在CColorDialog对话框中选择一种颜色,单击“确定”按钮,界面中的小格便显示出所选颜色。

图2 CColorDialog类的使用

根据对功能的分析,抽象出类的原型:

class CColorButton : public CButton

{

public:

CColorButton(COLORREF color=RGB(255,255,255));

virtual ~CColorButton();

private:

COLORREF m_Color;

//http://www.isstudy.com

};



CColorButton类继承CButton的特征,构造函数CColorButton为面板(小格)默认设置了一种颜色。成员变量m_Color记录当前面板(小格)的颜色。

当用户单击面板(小格)区域时,激活CColorDialog类对象。这需要添加消息响应函数。由于前面已经介绍过如何添加消息响应函数,这里不再重复。

在消息响应函数中添加如下代码:

void CColorButton::OnClicked()

{

CColorDialog ColorDlg;

ColorDlg.DoModal(); //显示颜色选择框

COLORREF thisColor=ColorDlg.GetColor(); //获取选择的颜色

if(thisColor==NULL) //判断是否为空

//http://www.isstudy.com

return;

m_Color=thisColor; //记录新颜色

this->Invalidate(true);

}

重载虚函数DrawItem,重新绘制类的外观。

void CColorButton::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)

{

CRect rect,Clrect;

rect=lpDrawItemStruct->rcItem;

CDC* pDC=::CDC::FromHandle(lpDrawItemStruct->hDC);

CBrush brush;

//http://www.isstudy.com

brush.CreateSolidBrush(m_Color); //将用户选中颜色载入笔刷

Clrect.SetRect(rect.left+2,rect.top+2,rect.right-2,rect.bottom-2);

//绘制3D边框

pDC->Draw3dRect(&rect,GetSysColor(COLOR_3DSHADOW),GetSysColor(COLOR_3DHILIGHT));

pDC->FillRect(&Clrect,&brush); //填充所选颜色

brush.DeleteObject();

}

向对话框资源中添加8个CColorButton类对象,注意,需要将Owner draw设置为True。按Ctrl+F5运行程序即可。



添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.