现在要求挺简单的 就是希望tab标签页面(就是创建的那个对话框)的颜色和tab标签的颜色一样 参考msconfig.exe
我的做法是这样的 tab标签页的对话框重载了 OnCtlColor 这个函数 这个函数返回的刷子 是CreateSolidBrush(GetBkColor(::GetDC(GetDlgItem(IDC_TAB_MAIN)->GetSafeHwnd()))); 这样创建的 IDC_TAB_MAIN 就是tabcontrol的id
现在这个界面在Windows 8下没问题 Windows xp下也没问题 tab页面和tab标签颜色一样 都被刷成白色的了 但是在 Windows Xp的经典风格下 就不一样了 tab标签不是白色 但是tab标签页却是白色的 目前想实现的就是让tab页面和 tab标签颜色简简单单的一致
我的做法是这样的 tab标签页的对话框重载了 OnCtlColor 这个函数 这个函数返回的刷子 是CreateSolidBrush(GetBkColor(::GetDC(GetDlgItem(IDC_TAB_MAIN)->GetSafeHwnd()))); 这样创建的 IDC_TAB_MAIN 就是tabcontrol的id
现在这个界面在Windows 8下没问题 Windows xp下也没问题 tab页面和tab标签颜色一样 都被刷成白色的了 但是在 Windows Xp的经典风格下 就不一样了 tab标签不是白色 但是tab标签页却是白色的 目前想实现的就是让tab页面和 tab标签颜色简简单单的一致
解决方案 »
- 打开CLASSWIZARD,里面依然显示旧的对话框类名称
- 用图片填充线,,比如画复杂的铁路线,怎样让图片随着线也倾斜
- MFC 中的new要不要对应delete,好像我们很少管这些吧。大家来讨论哇
- 程序怎样点最小化缩放到右下角!任务栏上就没了! 然后在点右下角就出来了
- 如何提高饱和度调节计算速度?
- 求助于高手:Tab Control控件如何使用?
- 想做一个服务程序,请做过的哥们帮帮忙
- 请问局域网内如何启动在另一台机器的EXE程序,要求它仍运行在那台机器上。谢谢!
- 《windows网络编程技术〉中的疑问:usage()??
- OPENGL
- VS2010出现fatal error C1902: 程序数据库管理器不匹配;请检查安装
- vs2010突然就编译MFC空文档会出现很多错误了!!!!!!!
{
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 原生的格格不入,一灰一白。