Выбор цвета в Combo Box (3)
Автор: James R. Twine.
Класс CColorPickerCB, заменяет
стандартный Combobox. Данный класс позволяет
отображать в списке помимо обыкновенных
надписей цвета. Так же класс позволяет добавлять
новый цвета или удалять старые прямо во время
выполнения Вашей программы. Управление цветами
можно осуществлять двумя способами: посредством
значения COLORREF, либо по имени
выбранного цвета.
The control correctly handles selection, enabled and disabled drawing (see images below
of the control is various states). Since the control uses strings for display, the colors
can be sorted.
Чтобы использовать этот класс, создайте Combobox, и
отметьте стили "Owner Draw Fixed" и
"Has Strings". Далее присоедините CColorPickerCB к Вашему Combobox, и всё должно
заработать :)
Не забудьте зарезервировать доя поля
достаточную ширину, так как ширина цветного
квадрата занимает 1/4 (четверть) всей ширины.
Благодарности Marcel Galema
за то что исправил баги в классе.
Список функций public в классе CColorPickerCB:
COLORREF GetSelectedColorValue(void) // Получить выбранное значение цвета
CString GetSelectedColorName(void); // Получить выбранное имя цвета
void SetSelectedColorValue(COLORREF crColor) // Установить выбранное значение цвета
void SetSelectedColorName(PCSTR cpColor); // Установить выбранное имя цвета
bool RemoveColor(PCSTR cpColor); // Удалить цвет из списка
bool RemoveColor(COLORREF crColor); // Удалить цвет из списка
int AddColor(PCSTR cpName, COLORREF crColor); // Вставить новый цвет
Демонстрационный пример можно взять здесь, а исходник класса CColorPickerCB здесь.
|