2011-04-19 86 views
0

我想在我的首选项对话框中添加一个类似于mspaint的颜色选择器。 enter image description here添加一个类似mspaint的颜色选择器工具栏

这可能与MFC有关吗?我使用的是VC6,因为很久以前项目已经启动了,现在它不能移植,所以我不能使用新的MFC类。

+0

当前版本的Paint(在Windows 7上)已将颜色选择器作为其Ribbon控件的一部分。在VC 6中,您无法使用功能区,创建一个功能将是令人难以置信的工作量。我不认为任何第三方Ribbon控件库仍然支持VC 6.但是,您可以*创建类似Paint *早期*版本中的颜色选择器工具栏。其实很简单。你能接受吗? – 2011-04-19 15:07:07

+0

是的,当然,我正在使用这个截图,因为我在Win7上。我其实并不需要任何幻想,而且我可能会选择一个显示CColorDialog的矩形(它也可用于VC6),当你点击它时,我只是问这个问题,以防万一有一个共同的控制因为我不知何故错过了。 – sashoalm 2011-04-19 15:11:13

回答

1

这个谜题有几个部分。首先是类似多行工具栏的功能。第二个是当你点击“编辑颜色”时被调用的颜色选择器。

第一个可以用多行工具栏模仿(一定程度)。我似乎回想起VC6的CToolBar在多行工具栏中存在一些问题,但我不确定这是否可能在服务包中得到修复(它看起来可能有问题,但我不确定) 。如果你不喜欢那样(它看起来不像原来的那样),你几乎会坚持创建你自己的控件并把它放到一个CToolBar中。只要你只想按照原样模仿控件,这并不会非常困难 - 你基本上将控件传递给一组颜色数字,当有点击时,它会发送通知消息与所选的颜色编号(或颜色编号的索引,如果您愿意)。只要你坚持固定的布局,那么数学就相当容易,但如果你想支持改变布局,它可能会很困难。

对于第二部分,一个好的起点可能是Hans Deitrich的XColorSpectrumCtrl

+0

我也不记得是否有一个修复多行工具栏的服务包,但是将对话框嵌入到工具栏中完美地工作在VC 6中。如果我没有记错,这是Paint的前版本创建颜色选择器,以及。即使在较旧的项目中,这也是相当微不足道的。 – 2011-04-20 03:29:40

0

这绝对有可能。但是,除非您可以找到一些现有的代码,否则您可能需要实现所有者自己绘制以获得此外观。

有一个颜色选择器控件,CMFCColorPickerCtrl,我没有用过。但我不相信它是做你正在寻找的东西。

+0

我正在使用VC6,不幸的是,项目绝对无法移植到较新的Visual Studio。 – sashoalm 2011-04-19 15:02:49

+0

@satuon:有没有想过在你的问题中提到这样的细节?正如你刚才观察到的那样,它确实会改变答案。 – 2011-04-19 15:04:36

+0

再说一次,你绝对可以做到这一点。但是你可能必须自己写。请注意,您发布的图片是功能区栏的一部分。如果您使用的是VC6,那么您甚至不需要使用色带控件。这意味着它可能会很多工作。 – 2011-04-19 15:04:47