Я хочу создать флажок в C ++ WinAPI с пользовательским растровым ресурсом в качестве фактического флажка.
К сожалению, когда я создаю WM_NOTIFY
-совместимый флажок (который на самом деле имеет дело с NM_CUSTOMDRAW
значимым образом), он, кажется, работает просто отлично, за исключением одной вещи: флажок, кажется, исчезает при изменении состояний. Похоже, это связано с визуальным стилем, поэтому я просто сбросил визуальный стиль с помощью SetWindowTheme(chkLogging, _T(" "), _T(" "));
.
HWND chkLogging = CreateWindowEx(
NULL,
_T("button"),
_T("Export to log file"),
WS_VISIBLE | WS_CHILD | BS_CHECKBOX | BS_NOTIFY,
300, 100, 100, 20,
hWnd, (HMENU)IDC_EXPORTLOG, NULL, NULL);
CheckDlgButton(hWnd, IDC_EXPORTLOG, BST_CHECKED);
SetWindowTheme(chkLogging, _T(" "), _T(" "));
К сожалению, установка темы для этого HWND
переопределит рендеринг NM_CUSTOMDRAW
. Я проверил это, удалив строку SetWindowTheme
и попробовав тему по умолчанию, и флажок NM_CUSTOMDRAW
работал как шарм.
Обычно это не проблема, но на самом деле это работает так, как будто предназначено для обычных кнопок.
Любая помощь по этому вопросу будет принята с благодарностью:)