Kyserx Ответов: 2

Графический интерфейс Windows изменить цвет кнопки


Я хочу изменить цвет кнопки, когда пользователь нажимает на нее.
Основной план таков: каждый месяц 10-го одна кнопка рабочего переходит в красный цвет, и если рабочий выполнил свою работу, то нажмите на кнопку, и она станет зеленой.
Я понятия не имею, что делать.
У меня уже есть этот код... Я просто создал окно и добавил к нему кнопку:
#include <windows.h>

LRESULT CALLBACK WindowProcedure(HWND,UINT,WPARAM,LPARAM);

void AddButton(HWND hwnd);


LRESULT CALLBACK WindowProcedure(HWND hWnd, UINT msg, WPARAM wp,
	LPARAM lp)
{
	switch (msg) {
	case WM_DESTROY:
		PostQuitMessage(0);
		break;
	case WM_CREATE:
		AddButton(hWnd);
		break;
	default:
		return DefWindowProcW(hWnd, msg, wp, lp);
	}
}

void AddButton(HWND hWnd)
{
	CreateWindowW(L"Button", L"Change colors", WS_VISIBLE | WS_CHILD,
		350, 200,
		100, 100,
		hWnd,
		NULL,
		NULL,
		NULL);
}


Что я уже пробовал:

Поэтому я попробовал WM_LBUTTONDOWN... поэтому я думаю, что это что-то, когда пользователь нажимает на кнопку, программа что-то делает. я вставил переключатель(msg) case WM_LBUTTONDOWN:
но я понятия не имею, что будет дальше

2 Ответов

Рейтинг:
9

Richard MacCutchan

Вам нужно использовать функцию пользовательского рисования, см. Кнопка - приложения для Windows | Microsoft Docs[^]. Я бы предложил сначала более подробно ознакомиться с общим использованием элементов управления Windows. Пользовательский рисунок-это немного более продвинутая тема.


Kyserx

Спасибо ^^

Рейтинг:
18

RickZeeland

Смотрите ответы здесь: Как изменить цвет фона кнопки WinAPI C++ - Stack Overflow[^]
А здесь: как изменить цвет кнопки в vc++ mfc для vs2008[^]

Также смотрите онлайн учебник здесь: Кнопка MFC[^]


Kyserx

По первой ссылке я не понимаю большую часть кода.
Во второй ссылке я не знаю, как создать переменную CButton.
Я действительно начинаю это делать.

RickZeeland

Я добавил ссылку на онлайн-учебник в TutorialsPoint, удачи :)

Kyserx

Спасибо ^^