Я воссоздал ту же проблему, используя SetWindowSubclass
в Code :: Blocks с MinGW.
Из оператора условия #if
видно, что _WIN32_WINNT
должно быть больше _WIN32_WINNT_WINXP
(представляет Windows XP, поскольку минимальный поддерживаемый клиент SetWindowSubclass
is windows XP)
В файле sdkddkver.h _WIN32_WINNT_WINXP
определяется как:
#define _WIN32_WINNT_WINXP 0x0501 /* Windows XP */
Поэтому нам нужно определить _WIN32_WINNT
больше 0x501
:
#define _WIN32_WINNT 0x502
#include <windows.h>
#include <stdio.h>
#include <commctrl.h>
Библиотека, которую вы должны связать в MinGW для этого API-интерфейса: libcomctl32.a
.
Кроме того, рекомендуется использовать MSV C и инструмент VS, который может правильно определять эти макросы .