Win32 ListView常见控件重绘问题

时间:2017-04-16 14:48:46

标签: c listview winapi common-controls

我在一个窗口中有一个列表视图公共控件。我有一个机制,可以在同一个窗口内更新列表(它就像一个魅力)。但是,我得到了这个要求,我必须从外部实体更新视图,如对话框或其他窗口。这就是出现问题的地方。

当项目从窗口边界外部插入时,列表视图不会更新。我已经尝试在每个可能的List View NOTIFICATION消息中进行UpdateWindow()调用,但无济于事。我希望有人可以帮助我。

此外,当整个应用程序窗口最小化并退回时,列表视图 DOES 将使用新项目/行进行更新。怪异。

1 个答案:

答案 0 :(得分:0)

哦,是的,感谢@Remy Lebeau在评论中给出正确的解决方案。这就是他给出的

/* window procedure of window where list view exists as a control */
case WM_NOTIFY:
    switch(((LPNMHDR) lParam)->code) {
        case LVN_INSERTITEM:
            ListView_RedrawItems(hMyList, 0, lastIndex);
            UpdateWindow(hMyList);
            UpdateWindow(hwnd); /* the parent window */
            ...

希望这可以帮助其他人寻找解决方案。