IsDialogMessage

IsDialogMessageで、ダイアログメッセージかどうか判定する。

IsDialogMessageA 関数 (winuser.h) - Win32 apps | Microsoft Learn

これを使わないと、タブ移動が有効にならない。
IsDialogMessage.cppで、

メインループをこのようにする。
ウィンドウプロシージャは、

こうする。

タブを押すと、"aaaaa"にフォーカスが当たる。
タブを押すと、"aaaaa"にフォーカスが当たる。

タブを押すと、"aaaaa"にフォーカスが当たる。

もう一度タブを押すと、"あああああ"にフォーカスが移動する。
もう一度タブを押すと、"あああああ"にフォーカスが移動する。

もう一度タブを押すと、"あああああ"にフォーカスが移動する。

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