Winapi 是否需要使用InitCommonControlsEx()和InitCommonControls()?
我对win32一无所知。在过去的48小时里我一直在做这件事 我正在尝试构建一个“网格”,我在msdn.microsoft.com上获得了列表视图控件和标题控件的示例 第一个调用InitCommonControls()函数(此外,我读到这个函数已经过时) 第二个调用InitCommonControlsEx()函数Winapi 是否需要使用InitCommonControlsEx()和InitCommonControls()?,winapi,Winapi,我对win32一无所知。在过去的48小时里我一直在做这件事 我正在尝试构建一个“网格”,我在msdn.microsoft.com上获得了列表视图控件和标题控件的示例 第一个调用InitCommonControls()函数(此外,我读到这个函数已经过时) 第二个调用InitCommonControlsEx()函数 HWND CreateListView (HWND hwndParent, HINSTANCE hInst) { RECT rcl; INITCOMMONC
HWND CreateListView (HWND hwndParent, HINSTANCE hInst)
{
RECT rcl;
INITCOMMONCONTROLSEX icex;
// Ensure that the common control DLL is loaded.
icex.dwSize = sizeof(INITCOMMONCONTROLSEX);
icex.dwICC = ICC_LISTVIEW_CLASSES;
InitCommonControlsEx(&icex);
// ...
// HWND hWndListView = CreateWindow(WC_LISTVIEW ...
}
似乎这些函数需要comctl32.lib库,但下载时却一团糟
此外,我还注意到,如果我删除这些函数,一切都会正常工作那么,它们是必要的吗?
谢谢 是的,这是必要的。它们需要注册这些自定义控件的窗口类。很可能,代码中的其他组件正在加载它们。我不确定,但我认为如果清单中支持comctl v6(XP和更高版本的视觉样式),则会自动获得commctl32.dll 关于InitCommonControlsEx做什么的更多信息是
我不知道你下载comctl32.lib是什么意思,自从NT 4和Windows 95以来,它在每个Windows平台上都有,所以你不需要重新发布它。哦,我的天哪!非常感谢。我没有注意到它在c:\Program Files\Microsoft SDK\Windows\v6.0A\Lib上
HWND CreateListView (HWND hwndParent, HINSTANCE hInst)
{
RECT rcl;
INITCOMMONCONTROLSEX icex;
// Ensure that the common control DLL is loaded.
icex.dwSize = sizeof(INITCOMMONCONTROLSEX);
icex.dwICC = ICC_LISTVIEW_CLASSES;
InitCommonControlsEx(&icex);
// ...
// HWND hWndListView = CreateWindow(WC_LISTVIEW ...
}