未声明的 WinApi Commctrl 轨迹栏标识符

WinApi Commctrl trackbar identifier undeclared

我正在尝试处理轨迹栏通知,但出于某种原因,我的 GCC 编译器抱怨 TRBN_THUMBPOSCHANGING 标识符未声明。

我已经包含了 header,

#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

创建轨迹条没问题,它显示出来并可以控制。 我错过了什么?

TRBN_THUMBPOSCHANGING 在 Windows Vista 及更高版本中可用。要使用它,您必须在包含任何头文件之前将 _WIN32_WINNT 设置为应用程序支持的最低版本。这可以在代码中完成

#define _WIN32_WINNT 0x0600  // Windows Vista

或在编译器的命令行上 (-D_WIN32_WINNT=0x0600)。建议使用后者以防止引入任何不匹配。有关详细信息,请参阅 Using the Windows Headers