15,978
社区成员
发帖
与我相关
我的任务
分享
typedef HRESULT (WINAPI *PFNETDT)(HWND, DWORD);
HRESULT EnableDialogTexture(HWND hwnd)
{
PFNETDT pfn;
HMODULE hModule;
hModule = LoadLibrary(TEXT("uxtheme.dll"));
if (hModule != NULL) {
pfn = (PFNETDT)GetProcAddress(hModule, "EnableThemeDialogTexture");
if (pfn != NULL) {
return (*pfn)(hwnd, ETDT_USETABTEXTURE);
}
}
return E_FAIL;
}
这是 C 风格的。如果你在 MFC 中用,当然两个函数前都要加两个冒号。对于你创建出来的位于 Tab 上的对话框来说,只需要这么一句即可让对话框与当前 Tab 一样的颜色:EnableDialogTexture(GetSafeHwnd())
这里传入的参数是 Tab 控件上的对话框的 HWND。这个问题恐怕相当大部分的程序员不知道,包括 Windows 上的很多扩展 dll,在文件属性中加入了 Tab,但是颜色在部分主题下 Windows 原生的格格不入,一灰一白。