edit - tablacus/TablacusDark GitHub Wiki
EDIT (入力ボックス)のダークモード対応
背景色と文字色を変更するには WM_CTLCOLOREDIT を STATIC みたいな感じで処理します。
#define TECL_DARKTEXT 0xffffff
#define TECL_DARKBG 0x202020
#define TECL_DARKEDITBG 0x181818
case WM_CTLCOLOREDIT:
SetTextColor((HDC)wParam, TECL_DARKTEXT);
SetBkColor((HDC)wParam, TECL_DARKBG);
SetDCBrushColor((HDC)wParam, TECL_DARKEDITBG);
return (LRESULT)GetStockObject(DC_BRUSH);
STATICと背景色を変えています。
枠線がちょっと目立つので1行の場合はテーマをdarkmode_cfd
にします。
if (GetWindowLong(hwnd1, GWL_STYLE) & ES_MULTILINE) {
::SetWindowTheme(hwnd1, g_bDarkMode ? L"darkmode_explorer" : L"explorer", NULL);
} else {
::SetWindowTheme(hwnd1, g_bDarkMode ? L"darkmode_cfd" : L"cfd", NULL);
}
複数行の場合、darkmode_explorer
にする理由はdarkmode_cfd
だとスクロールバーがダークモードに対応していないからです。