Noch was gefunden
So ändern Sie die Hintergrundfarbe von einem Registerkarten-Steuerelement
Hier mal ein kleines Sample (ohne Quelltext)
Allerdings nur die TextFarbe im Tab geändert.
Und auf die schnelle in PB geschrieben.
Das Problem in Delphi es fehlen zu viele
API's
Zum Beispiel!
TabCtrl_GetItem
könnte man so ermitteln
SendMessage(hwnd, TCM_GETITEM, iItem, @pItem)
War mir aber jetzt zu umständlich.
Delphi-Quellcode:
CASE %WM_DRAWITEM
LOCAL lDISPtr AS DRAWITEMSTRUCT PTR, zCap AS ASCIIZ * 50
LOCAL ti AS TC_ITEM, TextDrawFlag AS LONG
IF CBWPARAM = %ID_TAB THEN
lDisPtr = CBLPARAM
FillRect @lDisptr.hDc, @lDisptr.rcItem, GetSysColorBrush(%COLOR_3DFACE)
@lDisptr.rcItem.nTop = @lDisptr.rcItem.nTop + 3
IF @lDisPtr.ItemState = %ODS_SELECTED THEN
SetTextColor @lDisPtr.hDc, %BLUE
ELSE
SetTextColor @lDisPtr.hDc, %BLACK
END IF
SetBkColor @lDisPtr.hDc, GetSysColor(%COLOR_3DFACE)
ti.mask = %TCIF_TEXT
ti.pszText = VARPTR(zCap)
ti.cchTextMax = SIZEOF(zCap)
CALL TabCtrl_GetItem(GetDlgItem(CBHNDL, %ID_TAB), @lDisptr.itemID, ti)
DrawText @lDisptr.hDc, zCap, LEN(zCap), @lDisptr.rcItem, %DT_SINGLELINE OR %DT_CENTER
END IF
gruss