将组合框用于C ++ win32 api中的Listview项

时间:2016-01-20 10:10:01

标签: c++ listview winapi combobox

如何在C ++ win32 api中将listview的项目设置为Combobox?

我的列表视图

hWndListView = CreateWindowEx(
    WS_EX_CLIENTEDGE,
    WC_LISTVIEW,
    L"",
    WS_VISIBLE | WS_CHILD | LVS_REPORT | LVS_EDITLABELS,
    10,
    100,
    430,
    400,
    hWndx,
    (HMENU)IDC_LIST,
    NULL,
    NULL);

我的组合框

HWND hComboBox2 = CreateWindow(
    WC_COMBOBOX,
    CMBX_CLASS_NAME,
    CBS_DROPDOWN | CBS_HASSTRINGS | WS_CHILD | WS_OVERLAPPED | WS_VISIBLE,
    10,
    50,
    300,
    300,
    hWndListView,
    NULL,
    NULL,
    NULL);

有可能吗? 谢谢!

1 个答案:

答案 0 :(得分:0)

使用标准的ListView公共控件是不可能的。您可以通过创建标准的子类,并让它执行绘制以及所有其他功能来实现您自己的控件,从而执行您想要的操作。然后,您的自定义将包括响应点击,测试以确定点击发生的位置(使用LVM_HITTEST),创建和显示组合框,以及使用组合框中的新选项更新项目/子项目。