WM_CTLCOLORBTN

WM_CTLCOLORBTNは、ダイアログボックスのボタンコントロールを描画する前に来るウィンドウメッセージ。

WM_CTLCOLORBTN メッセージ (Winuser.h) - Win32 apps | Microsoft Learn

ただ、標準ボタンはエディットコントロールと違って、背景色や文字色を簡単に指定出来ない。
resource.hで、

とする。
WM_CTLCOLORBTN.rcで、

とする。
WM_CTLCOLORBTN.cppで、

とする。

こうなる。

こうなる。
テーマをクラシックにしたり、WM_INITDIALOGにSetWindowTheme持って来たり、いろいろやったけど、WM_CTLCOLORBTNは来るものの、標準のPUSHBUTTONでは背景色も文字色も変わらなかった。
BS_OWNERDRAWを付けたら、赤くなった。SetBkColorしなくても、返したブラシのカラーになった。
ただし、オーナードローなので、テキストは自身で描画する必要ある。WM_DRAWITEMでオーナードローするので、あまりWM_CTLCOLORBTNの意味はなくなった。

Sample/winapi/WM_CTLCOLORBTN/WM_CTLCOLORBTN/src/WM_CTLCOLORBTN at master · bg1bgst333/Sample · GitHub