Cdma1X Posted October 5, 2008 Posted October 5, 2008 hi, how to change color of TabSheet from default to Black in my code? thanks. #include <GUIConstantsEx.au3> #include <TabConstants.au3> #include <WindowsConstants.au3> #Region ### START Koda GUI section ### Form= $Form1 = GUICreate("Form1", 303, 196, 247, 148) $Tab1 = GUICtrlCreateTab(8, 8, 289, 185) GUICtrlSetResizing(-1, $GUI_DOCKWIDTH+$GUI_DOCKHEIGHT) $TabSheet1 = GUICtrlCreateTabItem("TabSheet1") $TabSheet2 = GUICtrlCreateTabItem("TabSheet2") GUICtrlSetState(-1,$GUI_SHOW) GUICtrlCreateTabItem("") GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd
rasim Posted October 5, 2008 Posted October 5, 2008 Cdma1X how to change color of TabSheetUsing label trick and ownerdrawing: expandcollapse popup#include <GuiConstantsEx.au3> #include <WindowsConstants.au3> #include <GuiTab.au3> Global Const $ODT_TAB = 101 Global Const $ODS_SELECTED = 0x0001 Global Const $ODA_DRAWENTIRE = 0x1 Global Const $ODS_FOCUS = 0x0010 $hGUI = GUICreate("Draw Tab", 300, 200) $hTab = GUICtrlCreateTab(10, 10, 280, 180, $TCS_OWNERDRAWFIXED) $TabItem_1 = GUICtrlCreateTabItem("TabItem 1") GUICtrlCreateLabel("", 10, 33, 277, 155) GUICtrlSetBkColor(-1, 0xDDAA11) GUICtrlSetState(-1, $GUI_DISABLE) $TabItem_2 = GUICtrlCreateTabItem("TabItem 2") GUICtrlCreateLabel("", 10, 33, 277, 155) GUICtrlSetBkColor(-1, 0x99BBEE) GUICtrlSetState(-1, $GUI_DISABLE) GUICtrlCreateTabItem("") GUISetState() GUIRegisterMsg($WM_DRAWITEM, "WM_DRAWITEM") _GUICtrlTab_SetCurSel($hTab, 1) _GUICtrlTab_SetCurSel($hTab, 0) Do Until GUIGetMsg() = -3 Func WM_DRAWITEM($hWnd, $Msg, $wParam, $lParam) Local $DRAWITEMSTRUCT $DRAWITEMSTRUCT = DllStructCreate("uint cType;uint cID;uint itmID;uint itmAction;uint itmState;" & _ "hwnd hItm;hwnd hDC;dword itmRect[4];dword itmData", $lParam) If DllStructGetData($DRAWITEMSTRUCT, "cType") <> $ODT_TAB Then Return $GUI_RUNDEFMSG Local $cID = DllStructGetData($DRAWITEMSTRUCT, "cID") Local $itmID = DllStructGetData($DRAWITEMSTRUCT, "itmID") Local $itmAction = DllStructGetData($DRAWITEMSTRUCT, "itmAction") Local $itmState = DllStructGetData($DRAWITEMSTRUCT, "itmState") Local $hItm = DllStructGetData($DRAWITEMSTRUCT, "hItm") Local $hDC = DllStructGetData($DRAWITEMSTRUCT, "hDC") If $itmAction <> $ODA_DRAWENTIRE Then Return $GUI_RUNDEFMSG Local $iTextColor, $itmText Switch $itmID Case 0 $iBrushColor = 0x11AADD Case 1 $iBrushColor = 0xEEBB99 EndSwitch DLLCall("gdi32.dll","int","SetBkMode", "hwnd", $hDC, "int", 1) Local $iBrush = DLLCall("gdi32.dll","hwnd","CreateSolidBrush", "int", $iBrushColor) $iBrush = $iBrush[0] Local $iBrushOld = _WinAPI_SelectObject($hDC, $iBrush) DLLCall("user32.dll","int","FillRect", "hwnd", $hDC, "ptr", DllStructGetPtr($DRAWITEMSTRUCT, "itmRect"), "hwnd", $iBrush) Local $tBuffer = DllStructCreate("char[256]") DllStructSetData($tBuffer, 1, "Item" & $itmID) $itmText = DllStructGetData($tBuffer, 1) DllStructSetData($DRAWITEMSTRUCT, "itmRect", DllStructGetData($DRAWITEMSTRUCT, "itmRect", 1) + 10, 1) DllStructSetData($DRAWITEMSTRUCT, "itmRect", DllStructGetData($DRAWITEMSTRUCT, "itmRect", 2) + 5, 2) DllCall("user32.dll", "int", "DrawText", "hwnd", $hDC, "str", $itmText, "int", StringLen($itmText), _ "ptr", DllStructGetPtr($DRAWITEMSTRUCT, "itmRect"), "int", $DT_LEFT) _WinAPI_SelectObject($hDC, $iBrushOld) _WinAPI_DeleteObject($iBrush) Return $GUI_RUNDEFMSG EndFunc
Zedna Posted October 5, 2008 Posted October 5, 2008 (edited) Using label trick and ownerdrawing:VERY nice & educative script rasim!! Edited October 5, 2008 by Zedna Resources UDF ResourcesEx UDF AutoIt Forum Search
Cdma1X Posted October 5, 2008 Author Posted October 5, 2008 @ rasim thanks and it's a really nice script. can i exclude tab button from changing their color because this script also changes the color of tab button and i want the default view of it's TabButtons. thanks for the script.
Zedna Posted October 5, 2008 Posted October 5, 2008 (edited) @ rasim thanks and it's a really nice script. can i exclude tab button from changing their color because this script also changes the color of tab button and i want the default view of it's TabButtons. thanks for the script. Just remove OWNERDRAW part and use only "label trick": #include <GuiConstantsEx.au3> #include <WindowsConstants.au3> #include <GuiTab.au3> $hGUI = GUICreate("Draw Tab", 300, 200) $hTab = GUICtrlCreateTab(10, 10, 280, 180) $TabItem_1 = GUICtrlCreateTabItem("TabItem 1") GUICtrlCreateLabel("", 10, 33, 277, 155) GUICtrlSetBkColor(-1, 0xDDAA11) GUICtrlSetState(-1, $GUI_DISABLE) $TabItem_2 = GUICtrlCreateTabItem("TabItem 2") GUICtrlCreateLabel("", 10, 33, 277, 155) GUICtrlSetBkColor(-1, 0x99BBEE) GUICtrlSetState(-1, $GUI_DISABLE) GUICtrlCreateTabItem("") GUISetState() Do Until GUIGetMsg() = -3 Edited October 5, 2008 by Zedna Resources UDF ResourcesEx UDF AutoIt Forum Search
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now