![](/img/trans.png)
[英]How to add a String Value/ Name Data pair in Windows Registry Editor key using C++ and Windows Registry API's
[英]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.