Red de conocimiento del abogados - Ley de patentes - VC++6.0 cambia el color del botón

VC++6.0 cambia el color del botón

Agregue la función de procesamiento de mensajes WM_DRAWITEM de la clase dlg

void CBtncolorDlg::OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct)

{

// TODO: Agregue su código de controlador de mensajes aquí y/o llame a default

if(nIDCtl==IDC_BUTTON1) //buscando el botón

{

CDC dc;

RECT rect;

dc.Attach(lpDrawItemStruct ->hDC); // Lleva el botón DC a CDC

rect = lpDrawItemStruct- >rcItem ; //Almacena el botón rect en nuestro rect local.

dc.Draw3dRect(&rect,RGB(255,255,255),RGB(0,0,0));

dc .FillSolidRect (&rect,RGB(100,100,255));//Aquí puede definir el color requerido que aparecerá en el Botón.

UINT state=lpDrawItemStruct->itemState //Esto define el estado del Push. botón presionado o no

if((state & ODS_SELECTED))

{

dc.DrawEdge(&rect,EDGE_SUNKEN,BF_RECT);

}

else

{

dc.DrawEdge(&rect,EDGE_RAISED,BF_RECT);

}

dc.SetBkColor(RGB(100,100,255)); //Configuración del color de fondo del texto

dc.SetTextColor(RGB(255,0,0)); p>

TCHAR buffer[MAX_PATH]; //Para almacenar el título del botón.

ZeroMemory(buffer,MAX_PATH ); //Iniciando el buffer a cero

: :GetWindowText (lpDrawItemStruct->hwndItem,buffer,MAX_PATH); //Obtener el título de la ventana del botón

dc.DrawText(buffer,&rect,DT_CENTER|DT

_VCENTER|DT_SINGLELINE);//Redibujar el título de la ventana del botón

dc.Detach(); // Separar el botón DC

}

CDialog:: OnDrawItem(nIDCtl, lpDrawItemStruct);

}