Как изменить цвет текста SetDlgItemText с помощью SetTextColor в win32? - PullRequest
0 голосов
/ 25 февраля 2020

Поскольку я работаю в Win32, я хочу отобразить сообщение, используя SetDlgItemText. Сообщение должно менять свой цвет в зависимости от успеха или неудачи (например, зеленый для успеха, красный для отказа).

Код функции:
if { //if user does not enter a key SetDlgItemText(hDlg, ID_RESULT, L"Please enter a key"); return false; } else { SetDlgItemText(hDlg, ID_RESULT, L"Please enter all the user information"); return false; }

В приведенном выше коде «Пожалуйста, введите ключ» и «Пожалуйста, введите всю информацию пользователя» должны быть красного цвета, указывающего на ошибку , Мы устанавливаем зеленый цвет по умолчанию для ID_RESULT. Можно ли изменить цвет, используя функцию SetTextColor в самом условии IF, или дать другие параметры

1 Ответ

2 голосов
/ 25 февраля 2020

Если вы используете элемент управления Edit, см. WM_CTLCOLOREDIT

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

Если вы используете Stati c Control, см. WM_CTLCOLORSTATI C

Элемент управления stati c или элемент управления редактирования, доступный только для чтения или отключенный, отправляет сообщение WM_CTLCOLORSTATI C в родительское окно, когда этот элемент управления собирается быть нарисованным. Отвечая на это сообщение, родительское окно может использовать заданный дескриптор контекста устройства для установки текста переднего плана и цветов фона элемента управления stati c.

Подробнее об операции кода см. это .

...