color de fondo de la aplicación

30/11/2004 - 17:00 por txemasm | Informe spam
Hola a todos,

tengo una aplicación a la que quiero incorporar unos gráficos, que
tiene un color de fondo que quiero hacer coincidir con el color de
fondo de la aplicación. El problema está en que el color de fondo de
la aplicación puede variar, depende de la configuración que tenga el
usuario en su ordenador.

¿Sabe alguien cómo obligar a que el color de fondo de los diálogos de
una aplicación sean uno definido (ej: RGB(236,2333,216))?

Muchas gracias.

Preguntas similare

Leer las respuestas

#1 Rodrigo Corral [MVP]
30/11/2004 - 18:08 | Informe spam
Crea un brush con el mismo tiempo de vida que el dialog, una variable
miembro es lo habitual (m_pBkBrush)
Inicializalo en la inizialización del dialogo
Controla el mensaje WM_CTLCOLOR del siguiente modo

HBRUSH CMyDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
switch (nCtlColor) {

case CTLCOLOR_DLG:
return (HBRUSH)(m_pBkBrush.GetSafeHandle());

default:
return CFileDialog::OnCtlColor(pDC, pWnd, nCtlColor);
}
}


Un saludo
Rodrigo Corral González [MVP]

FAQ de microsoft.public.es.vc++
http://rcorral.mvps.org
Respuesta Responder a este mensaje
#2 Rodrigo Aceves
30/11/2004 - 18:15 | Informe spam
Puedes usar la funcion
GetSysColor(COLOR_3DFACE)

esa funcion te regresa el color de fondo de las ventanas que tiene el
usuario.

Saludos

"txemuki" escribió en el mensaje
news:
Hola a todos,

tengo una aplicación a la que quiero incorporar unos gráficos, que
tiene un color de fondo que quiero hacer coincidir con el color de
fondo de la aplicación. El problema está en que el color de fondo de
la aplicación puede variar, depende de la configuración que tenga el
usuario en su ordenador.

¿Sabe alguien cómo obligar a que el color de fondo de los diálogos de
una aplicación sean uno definido (ej: RGB(236,2333,216))?

Muchas gracias.
Respuesta Responder a este mensaje
#3 Sergio
01/12/2004 - 08:37 | Informe spam
txemuki wrote:
Hola a todos,

tengo una aplicación a la que quiero incorporar unos gráficos, que
tiene un color de fondo que quiero hacer coincidir con el color de
fondo de la aplicación. El problema está en que el color de fondo de
la aplicación puede variar, depende de la configuración que tenga el
usuario en su ordenador.

¿Sabe alguien cómo obligar a que el color de fondo de los diálogos de
una aplicación sean uno definido (ej: RGB(236,2333,216))?

Muchas gracias.



Para hacer que el color de fondo sea el que tú quieres,
independientemente de lo que tenga el usuario definido, en una
aplicación basada en dialogos:

void CTuDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // Contexto de dispositivo para dibujo

SendMessage(WM_ICONERASEBKGND,
reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);

// Centrar icono en el rectángulo de cliente
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;

// Dibujar el icono
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CPaintDC dc(this);
CRect rect;
GetClientRect(&rect);
dc.FillRect(&rect,&CBrush(RGB(236,233,216)));

CDialog::OnPaint();
}
}

En una aplicación basada en vistas:

void CTuView::OnDraw(CDC* pDC)
{
CRect rect;
GetClientRect(&rect);
pDC->FillRect(rect,&CBrush(RGB(236,233,216)));
}
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida