Как добавить палитру цветов в MFC? - PullRequest
2 голосов
/ 29 апреля 2011

Я хочу иметь возможность выбрать любой цвет, который я хочу, как на картинке.

COLOR PICKER

да, я хочу выучить этот c ++ или mfc Я считаю это более мощным. Не могли бы вы объяснить мне, как именно добавить его в мой проект. Я также хочу, чтобы цвет сам по себе и его код появлялся в графическом и текстовом поле.

Спасибо

Ответы [ 5 ]

5 голосов
/ 29 апреля 2011

Использование класса CColorDialog в mfc используется для выбора цвета из mfc

 // Get the selected color from the CColorDialog. 
 CColorDialog dlg; 
 if (dlg.DoModal() == IDOK) 
 { 
      COLORREF color = dlg.GetColor(); 

 }

В этом примере появится всплывающее диалоговое окно для выбора цвета, после выбора цвета и нажатия кнопки «ОК» переменная цвета будет содержать выбранный цвет.

Используйте этот цвет в вашем приложении.

EDIT

Вы можете настроить поле со списком или список для добавления инструмента выбора цвета.

Ссылка по этой ссылке: CodeProjectSample

2 голосов
/ 29 апреля 2011

Поскольку у вас, похоже, нет MFC Feature Pack, установите Ultimate Toolbox на http://www.codeproject.com/KB/MFC/UltimateToolbox.aspx.. Его классы графического интерфейса пользователя имеют Color Picker .

2 голосов
/ 29 апреля 2011

CMFCColorDialog - это то, что вы ищете.Чтобы сделать его похожим на раскрывающийся список, вам нужно расположить его под кнопкой со стрелкой вниз (например, используя MoveWindow).

0 голосов
/ 12 августа 2015

У меня была похожая проблема с CMFCColorButton. Я добавил графический ресурс с ToolBox в свой дизайн диалога, но я не мог назначить управляющую переменную, потому что она не распознала CMFCColorButton.

Ответ должен был включить afxcolorbutton.h в заголовок stdafx.h. Может быть, вы можете исправить это таким же образом.

Надеюсь, это поможет

0 голосов
/ 02 мая 2011

Для версий Visual Studio до 2008 года вы можете использовать цветовой пикер BCGSoft (http://www.bcgsoft.com). Цветовой диалог MFC основан на этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...