使用 Win32 API 分層顯示資料(如注冊表編輯器的顯示方式)的最佳方法是什么?是否有任何控制元件可以做到這一點?我知道.NET 中的這種方法,但我真的不想在托管代碼和 C 之間創建大量互動。
uj5u.com熱心網友回復:
創建 TreeView 控制元件并將其添加到視窗后(請參閱注釋中的鏈接),您可以像這樣加載注冊表項。您需要更多代碼才能在串列視圖中添加值。
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);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/398661.html
