c++ 如何在Listview的标题中添加复选框样式项?

jogvjijk  于 2023-10-20  发布在  其他
关注(0)|答案(1)|浏览(87)

我想添加一个复选框样式的项目的标题列表视图,但它不工作。我是这么做的:在主流程中

case WM_CREATE:{
  HWND hHeader = CreateWindowEx(0,WC_HEADER,L"Header Control",WS_CHILD | WS_VISIBLE | HDS_CHECKBOXES,
            10, 10, 1000, 20,hWnd,(HMENU)ID_HEADER,GetModuleHandle(NULL),NULL);
  HDITEM hdi;
  hdi.mask = HDI_FORMAT | HDI_WIDTH;
  hdi.cxy = 100;
  hdi.fmt = HDF_CHECKBOX;

  int index = SendMessage(hHeader, HDM_INSERTITEM,
    (WPARAM)0, (LPARAM)&hdi);
}

结果如下:

我还尝试了其他一些API或marco,如Header_SetItem和Header_InsertItem,但复选框也没有出现。How to add a checkbox to the listcontrol column header to check and uncheck all checkboxes of the list items?中的问题正是我想做的,但我不想使用MFC。我可以只使用HDITEM结构和Header_InsertItem来完成这项工作吗?这是我第一次在堆栈溢出中问问题。如果我的问题中有任何不清楚的信息,请告诉我。提前感谢您的帮助。

vd2z7a6w

vd2z7a6w1#

从图片的外观来看,您似乎没有使用视觉样式。
您必须使用通用控件6.0或更高版本。如果没有视觉样式,此标志将无法工作。
参见Enabling Visual Styles

相关问题