目前共有4篇帖子。 字體大小:較小 - 100% (默認)▼  內容轉換:港澳繁體▼
 
點擊 回復
230 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)
 

本帖信息

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