Ver Mensaje Individual
  #6  
Antiguo 01-10-2008
M@R!N@ M@R!N@ is offline
Miembro
 
Registrado: feb 2008
Posts: 21
Reputación: 0
M@R!N@ Va por buen camino
Hola espero que no sea muy tarde, pero lo pongo por si te sirve...

Para poder cambiar el color de tus pestañas tienes que hacer la propiedad OwnerDraw=true y en el evento OnDrawTab esto:

Código:
 
TPageControl *pageControl = dinamic_cast<TPageControl*>Control); //Puntero al TPageControl que recibe el evento
pageControl->Canvas->Brush->Color = clRed; //Color que quieres ponerle a las pestañas
 pageControl->Canvas->FillRect(Rect); //Para pintarlas
DrawText(pageControl->Canvas->Handle,pageControl->Pages[TabIndex]->Caption.c_str(),pageControl->Pages[TabIndex]->Caption.Length(), const_cast<TRect*>(&Rect), DT_CENTER | DT_VCENTER | DT_SINGLELINE); //Para que se vea tu texto después de pintarlas
Por cierto, si quieres pintar de diferente color cada pestaña. basta con que evalues el valor de TabIndex que te regresa el evento para saber en que pestaña estás y en base a esto puedes cambiar el color según la pestaña en el brush, por ejemplo:


Código:
 
TPageControl *pageControl = dinamic_cast<TPageControl*>Control);
if(TabIndex==0)
   {
   pageControl->Canvas->Brush->Color = clRed;
   }
else if(TabIndex==1)
   {
   pageControl->Canvas->Brush->Color = clBlue;
   }

pageControl->Canvas->FillRect(Rect);
DrawText(pageControl->Canvas->Handle,pageControl->Pages[TabIndex]->Caption.c_str(),pageControl->Pages[TabIndex]->Caption.Length(), const_cast<TRect*>(&Rect), DT_CENTER | DT_VCENTER | DT_SINGLELINE);
Esto hace que la primera pestaña se pinta roja, y la segunda en azul, pruébalo y espero que te sirva. Hasta luego!

Última edición por M@R!N@ fecha: 01-10-2008 a las 05:18:22.
Responder Con Cita