c++ - Windows C++ API ListView 未显示

标签 c++ windows api listview

我目前正在学习适用于 C++ 的 Windows API,并且正在尝试创建一个 ListView 控件。我编辑了 MSDN 文档中的源代码,但我卡住了,因为我的窗口中实际上没有显示任何 ListView 。当我创建不同的控件时,它们的显示没有问题。我使用这个函数来创建 ListView。

HWND CreateListView(HWND hwndParent)
{
    INITCOMMONCONTROLSEX icex;           
    icex.dwICC = ICC_LISTVIEW_CLASSES;
    icex.dwSize = sizeof(icex);
    if(InitCommonControlsEx(&icex) == FALSE) MessageBox(NULL,L"Initiation of common controls failed",L"Fail", MB_OK);

    RECT rcClient;                       

    GetClientRect(hwndParent, &rcClient);


    HWND hWndListView = CreateWindow(WC_LISTVIEW,
    L"",
    WS_CHILD | LVS_REPORT | LVS_EDITLABELS,
    0, 0,
    rcClient.right - rcClient.left,
    rcClient.bottom - rcClient.top,
    hwndParent,
    (HMENU)IDM_DATABAZA_LIST,
    hInst,
    NULL);

    return (hWndListView);
}

ListView 创建没有问题,但它没有显示在窗口中。这里可能是什么问题?

最佳答案

添加 WS_VISIBLE 标志:

HWND hWndListView = CreateWindow(WC_LISTVIEW, L"", 
    WS_VISIBLE|WS_CHILD|LVS_REPORT|LVS_EDITLABELS,...)

或使用 ShowWindow(hWndListView, SW_SHOW)SetWindowPos(hWndListView,...,SWP_NOZORDER|SWP_SHOWWINDOW);

并添加错误检查

if (!hWndListView)
{
    OutputDebugStringW(L"error\n");
    return NULL;
}

关于c++ - Windows C++ API ListView 未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37460277/

相关文章:

c++ - Boost:仅安装 header

windows - 从 WMIC 中批量获取变量的产品名称

node.js - 全新的 Node.js - API 编程

javascript - 如何使用 Node js 中的 API key 从 REST api 获取数据?

c++ - inotify - 在目录树中的几个级别之后无法将监视添加到新创建的目录

c++ - c++ 中的辅助函数和抽象

.net - 使用单个 exe 部署 Windows 窗体应用程序

windows - Go中终止进程的跨平台方式

python - JSON 响应格式奇怪

c++ - 从 C++ 中的 const 成员函数修改引用成员