繁体   English   中英

使用 Windows API 显示分层数据的最佳方式(如注册表编辑器)

[英]Best way to display hierarchal data using Windows API (like that of the Registry Editor)

使用 Win32 API 分层显示数据的最佳方法是什么,例如注册表编辑器? 有没有可以做到这一点的控件? 我在 .NET 中知道这种方法,但我真的不想在托管代码和 C++ 之间创建大量交互。

在您创建了 TreeView 控件并将其添加到您的 window 后(请参阅评论中的链接),您可以像这样加载注册表项。 您需要更多代码才能在列表视图中添加值。

void LoadRegRec(HWND tree_view, HTREEITEM parent, HKEY root)
{
    DWORD index = 0;
    TCHAR name[512];
    while (ERROR_SUCCESS == RegEnumKey(root, index++, name, sizeof(name) / sizeof(name[0]))) {
        TV_INSERTSTRUCT tvinsert = { 0 };
        tvinsert.hParent = parent;
        tvinsert.hInsertAfter = TVI_LAST;
        tvinsert.item.mask = TVIF_TEXT;
        tvinsert.item.pszText = name;
        HTREEITEM node = (HTREEITEM)SendMessage(tree_view, TVM_INSERTITEM, 0, (LPARAM)&tvinsert);
        HKEY next_key;
        RegOpenKey(root, name, &next_key);
        LoadRegRec(tree_view, node, next_key);
        RegCloseKey(next_key);
    }
}
void LoadRegistry(HWND tree_view)
{
    HKEY root;
    RegOpenKey(HKEY_CURRENT_USER, TEXT("Software"), &root);
    LoadRegRec(tree_view, NULL, root);
    RegCloseKey(root);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM