Farbe ändern bei Registerkarten.
-
Wie kann ich die Farbe der Schaltflächen(Titelleiste) der Registerkarten in einer TabCtrl, bzw. PropertyPage ändern?
Hab schonmal versucht ein Rectangle an diesen Stellen zu zeichnen, aber dadurch wird der Text verdeckt.
-
Geht nur per Owenerdraw.
http://www.codeproject.com/tabctrl/customtab.asp?df=100&forumid=3216&exp=0&select=1374472
-
Ich blicke in dem Code nicht so richtig durch, bzw. finde nicht das was ich brauche.
Hier ist mein Code. Vielleicht kannst du mir dann etwas weiterhelfen?!?void CDeviceStateDlg::OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpdis) { char szTabText[100]; RECT rect; CBrush *cbr; TC_ITEM tci; CTabCtrl *pTabCtrl = (CTabCtrl *)GetDlgItem(IDC_TAB); tci.mask = TCIF_TEXT; tci.pszText = szTabText; tci.cchTextMax = sizeof(szTabText)-1; pTabCtrl->GetItem(lpdis->itemID, &tci); CDC *dc = CDC::FromHandle(lpdis->hDC); rect.bottom = 460; rect.top = 0; rect.left = 0; rect.right= 690; cbr = &brTabColor; dc->FillRect(&rect, cbr); TextOut(lpdis->hDC, lpdis->rcItem.left, lpdis->rcItem.top, tci.pszText, lstrlen(tci.pszText)); }
-
Es werden nur diejenigen Texte der Registerkarten überschrieben die gerade nicht ausgewählt sind.