Добавление панели инструментов палитры цветов, как у mspaint - PullRequest
0 голосов
/ 19 апреля 2011

Я хочу добавить палитру цветов в диалоге настроек, который похож на mspaint. enter image description here

Возможно ли это сделать с помощью MFC? Я использую VC6, потому что проект был запущен на нем давно, и теперь он не может быть перенесен, поэтому я не могу использовать новые классы MFC.

Ответы [ 2 ]

1 голос
/ 19 апреля 2011

В этой головоломке есть несколько частей.Во-первых, это функциональность, похожая на многорядную панель инструментов.Второй - это палитра цветов, который вызывается при нажатии «Редактировать цвета».

Первый можно имитировать (до некоторой степени) с помощью многострочной панели инструментов.Кажется, я вспоминаю, что у CToolBar в VC6 были некоторые проблемы с многорядными панелями инструментов, но я не уверен, возможно ли, что это было исправлено в пакете обновления (кажется, что это возможно, но я точно не помню).

Если вам это не нравится (это не будет сильно похоже на оригинал), вы будете в значительной степени зациклены на создании собственного элемента управления и помещении его в CToolBar.Пока вы только хотите имитировать элемент управления в том виде, в каком он есть, это будет не очень сложно - вы в основном передадите элементу управления массив цветовых чисел, а при щелчке он отправит уведомлениес выбранным номером цвета (или индексом номера цвета, если вы предпочитаете).Математика для этого довольно проста, если вы придерживаетесь фиксированного макета, но если вы хотите поддержать изменение макета, это может стать намного сложнее в спешке.

Для второй части, одинХорошей отправной точкой, вероятно, будет Ханс Дейтрих XColorSpectrumCtrl.

0 голосов
/ 19 апреля 2011

Это абсолютно возможно.Однако, если вы не можете найти какой-либо существующий код, вам может потребоваться реализовать собственное изображение, чтобы получить этот вид.

Существует элемент управления палитрой цветов, CMFCColorPickerCtrl, который я не использовал.Но я не верю, что он делает то, что вы ищете.

...