Необъявленный идентификатор трекбара в WinApi Commctrl

Я пытаюсь обработать трекбар, но по какой-то причине мой компилятор GCC жалуется, что TRBN_THUMBPOSCHANGING идентификатор не объявлен.

Я включил заголовок,

#include <commctrl.h>

и инициализировал элементы управления,

INITCOMMONCONTROLSEX icex;  
icex.dwICC = ICC_LISTVIEW_CLASSES | ICC_WIN95_CLASSES;
InitCommonControlsEx(&icex);

Я также пытался ICC_BAR_CLASSES и несколько других вместо win95.

Также я собираю через bat-файл, включая эту команду

gcc foodplaner.o resources.o sqlite3.o -lgdi32 -lcomctl32 -o foodplaner.exe

Создание трекбара не составило труда, оно появляется и им можно управлять. Что мне не хватает?

1 ответ

Решение

TRBN_THUMBPOSCHANGING доступно в Windows Vista и выше. Чтобы использовать его, вы должны установить _WIN32_WINNT до минимальной поддерживаемой версии вашего приложения до включения любых заголовочных файлов. Это можно сделать в коде

#define _WIN32_WINNT 0x0600  // Windows Vista

или в командной строке вашего компилятора (-D_WIN32_WINNT=0x0600). Последнее рекомендуется для предотвращения любых несоответствий. См. Использование заголовков Windows для деталей.

Другие вопросы по тегам