在ListView中启用分组 - 无效句柄?

时间:2012-09-22 06:51:32

标签: c++ winapi listview grouping common-controls

我不明白以下情况:

    HWND hListView = CreateWindowEx( 0, WC_LISTVIEW, NULL, WS_CHILD | WS_VISIBLE |
                                   LVS_REPORT | LVS_EDITLABELS | LVS_SHOWSELALWAYS, 0,
                                   0, rcl.right - rcl.left, rcl.bottom - rcl.top,
                               hMain,( HMENU ) 1000, inst, NULL);
    int error = GetLastError();//error=0;
    //ListView is displayed correctly
    //Some Code for columns
    //Now trying to enable grouping via SendMessage or following macro returns error:6?
    //What the...
    ListView_EnableGroupView(hListView, TRUE);
    error = GetLastError();//error=6;ERROR_INVALID_HANDLE
    //Some Code for Items

所以我错过了什么; D?在句柄就在上面时处理这个错误很有趣,为其他事情(列,行/项)工作

Edit_1 - 7:27(GMT): 是的,它总是在创建列/项目/组和各种组合之后放置错误6,这里是代码:

    //Groups - Send-Recv
LVGROUP lvg;
lvg.cbSize = sizeof(LVGROUP);
lvg.mask = LVGF_HEADER | LVGF_GROUPID;

lvg.pszHeader = L"Gr1";
lvg.iGroupId = 1;
ListView_InsertGroup( hListView, - 1, & lvg );
//MessageBoxA(NULL, i2s(GetLastError()).c_str(), "ERROR2", MB_OK | MB_ICONERROR);
lvg.pszHeader = L"Gr2";
lvg.iGroupId = 2;
ListView_InsertGroup( hListView, - 1, & lvg );
    //Enable
ListView_EnableGroupView(hListView, TRUE);
//error 6

1 个答案:

答案 0 :(得分:3)

只有永远调用GetLastError(),当您从Windows api函数获得失败返回代码时,文档会告诉您api函数设置了上一个错误。< / p>

这里也没有使用ListView_EnableGroupView()。