作者共發了4篇帖子。 字體大小:較小 - 100% (默認)▼  內容轉換:不轉換▼
 
點擊 回復
222 3
去除Tab控件每个选项卡上的深色对话框背景的方法
一派掌門 二十級
1樓 發表于:2024-7-10 21:04
一般情况下,我们是用不带边框的对话框来充当Tab Control的每个选项卡的内容的。
例如,主对话框IDD_TABBOX上有一个Tab Control,上面有两个选项卡,第一个选项卡用的是IDD_DIALOG1充当内容,第二个用的则是IDD_DIALOG2。IDD_DIALOG1和IDD_DIALOG2的Border属性设为None,Style属性设为Child。
但是用对话框充当选项卡内容会有烦人的深色对话框背景,和选项卡的样式并不搭,看起来也不好看。
其实,要去掉这个深色对话框背景很简单,只需要在每个选项卡的对话框的消息处理函数的WM_INITDIALOG里面加一句EnableThemeDialogTexture(hdlg, ETDT_ENABLETAB);就行了。有多少个选项卡,就加多少句这句话。
使用EnableThemeDialogTexture函数前,需要包含头文件Uxtheme.h和库文件Uxtheme.lib。该函数支持Windows XP系统。
#include <Uxtheme.h>
#pragma comment(lib, "Uxtheme.lib")

注意:使用这个函数后,如果程序处理了Static控件的WM_CTLCOLORSTATIC消息,直接return 0就可以用渐变背景了。不需要返回HBRUSH背景刷,SetTextColor设置的文字颜色就能生效。
一派掌門 二十級
2樓 發表于:2024-7-10 22:10
 
一派掌門 二十級
3樓 發表于:2024-10-21 20:51
【重要】使键盘上的Tab键能够正常让光标在Tab控件和子页面控件间切换的方法:
(1)使用CreateDialog函数创建子页面时,第三个参数(父窗口)必须为main_dlg(tab控件所在的窗口),不能为tabctrl(tab控件本身)。
(2)Tab控件本身的Tabstop属性必须为True。
(3)各子页面(IDD_DIALOG1和IDD_DIALOG2)本身的Control Parent属性必须为True。
(4)切换选项卡(switch_tab)后,必须调用SetFocus(tabctrl)将当前光标切换到Tab控件上。
 
一派掌門 二十級
4樓 發表于:2024-12-3 22:37
【VC++中TabConrol控件子窗体背景XP样式完美解决方案 - CSDN App】http://t.csdnimg.cn/gLP7X
 

回復帖子

內容:
用戶名: 您目前是匿名發表
驗證碼:
(快捷鍵:Ctrl+Enter)
 

本帖信息

點擊數:222 回複數:3
評論數: ?
作者:巨大八爪鱼
最後回復:巨大八爪鱼
最後回復時間:2024-12-3 22:37
 
©2010-2025 Purasbar Ver2.0
除非另有聲明,本站採用創用CC姓名標示-相同方式分享 3.0 Unported許可協議進行許可。