Domingo 15 de Diciembre de 2024, 18:52
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Color En Controles
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Color En Controles (Leído 1002 veces)
nostromo
Miembro MUY activo
Mensajes: 134
Color En Controles
«
en:
Jueves 9 de Febrero de 2006, 00:52 »
0
Holas;
Estaba programando Cuadros de Diálogos, a los controles Edit y Radio Button,
les cambiaba el background y color de la fuente, ningún problema.
Ahora estaba programando ventanas sin recurrir a recursos, ahora no puedo hacer que se modifique
los colores de los controles, ejemplo;
Código: Text
#include <windows.h>
/* Declare Windows procedure */
LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);
HINSTANCE inst;
/*-----------------------*/
#define CB_OCULTAR 10
#define RB_RADIO_1 11
#define RB_RADIO_2 12
#define BG_GRUPO 13
#define RB_RADIO_3 14
#define RB_RADIO_4 15
//-----
#define EstiloRadios WS_CHILD | WS_VISIBLE |BS_AUTORADIOBUTTON
#define EstiloGrupos WS_CHILD | WS_VISIBLE | BS_GROUPBOX | WS_GROUP
#define EstiloEdit WS_CHILD | WS_VISIBLE | WS_BORDER
/*-----------------------*/
char szClassName[ ] = "Ejemplo Controles";
//
int WINAPI WinMain (HINSTANCE hThisInstance,
HINSTANCE hPrevInstance,
LPSTR lpszArgument,
int nFunsterStil)
{
HWND hwnd;
MSG messages;
WNDCLASSEX wincl;
/* The Window structure */
wincl.hInstance = hThisInstance;
wincl.lpszClassName = szClassName;
wincl.lpfnWndProc = WindowProcedure;
wincl.style = CS_DBLCLKS;
wincl.cbSize = sizeof (WNDCLASSEX);
/* Use default icon and mouse-pointer */
wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
wincl.lpszMenuName = NULL;
wincl.cbClsExtra = 0;
wincl.cbWndExtra = 0;
/* Use Windows's default color as the background of the window */
wincl.hbrBackground = (HBRUSH) (COLOR_BTNFACE+1);//COLOR_BACKGROUND;
/* Register the window class, and if it fails quit the program */
if (!RegisterClassEx (&wincl))
return 0;
/* */
hwnd = CreateWindowEx (
0,
szClassName,
"Ejemplos Controles",
WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX,
CW_USEDEFAULT,
CW_USEDEFAULT,
544,
375,
HWND_DESKTOP,
NULL,
hThisInstance,
NULL
);
//
ShowWindow (hwnd, nFunsterStil);
//
while (GetMessage (&messages, NULL, 0, 0))
{
TranslateMessage(&messages);
DispatchMessage(&messages);
}
return messages.wParam;
}
LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
static HWND hedit,hboton,hradio_1,hradio_2;
static HWND hgrupo;
static HWND hradio_3,hradio_4;
int optar = 11;
//--- COLOR BACKGROUND CONTROLES
static HBRUSH RadioBrush;
static COLORREF BkRadioColor;
static COLORREF TextoRadio;
switch (message)
{
case WM_CREATE:
hedit = CreateWindowEx(
0,
"edit","",
EstiloEdit,
10,10,80,20,
hwnd,NULL,
inst,NULL
);
hboton = CreateWindowEx(
0,
"button","Ocultar",
WS_CHILD | WS_VISIBLE,
10,40,60,22,
hwnd,(HMENU)CB_OCULTAR,
inst,NULL
);
hgrupo = CreateWindowEx(
0,
"button","OPciones",
EstiloGrupos, 15,70,150,80,
hwnd,(HMENU)BG_GRUPO,
inst,NULL
);
hradio_1 = CreateWindowEx(
0,
"Button","Marcar",
EstiloRadios, 30,88,60,20,
hwnd,(HMENU)RB_RADIO_1,
inst,NULL
);
hradio_2 = CreateWindowEx(
0,
"button","Marca 2",
EstiloRadios, 30,113,70,20,
hwnd,(HMENU)RB_RADIO_2,
inst,NULL
);
hgrupo = CreateWindowEx(
0,
"button","Opciones 2",
EstiloGrupos, 15,150,150,80,
hwnd,(HMENU)BG_GRUPO,
inst,NULL
);
hradio_3 = CreateWindowEx(
0,
"button","Marca 3",
EstiloRadios, 30,175,70,20,
hwnd,(HMENU)RB_RADIO_3,
inst,NULL
);
hradio_4 = CreateWindowEx(
WS_EX_TRANSPARENT,
"button","Marca 4",
EstiloRadios, 30,192,70,20,
hwnd,(HMENU)RB_RADIO_4,
inst, NULL
);
//---------
TextoRadio = RGB(0,0,254);
BkRadioColor = GetSysColor(COLOR_WINDOW);//RGB(225,225,225) GetSysColor(COLOR_BACKGROUND);
RadioBrush = CreateSolidBrush(BkRadioColor);
break;
case WM_CTLCOLORBTN:
if((HWND)lParam == (HWND)RB_RADIO_4)
{
SetTextColor((HDC)wParam,TextoRadio);
SetBkColor((HDC)wParam,BkRadioColor);
return (LONG)RadioBrush;
}
break;
case WM_COMMAND:
switch(LOWORD(wParam))
{
case CB_OCULTAR:
SetWindowText(hedit,"Holas");
break;
case RB_RADIO_1:
SetWindowText(hedit,"Radio1");
break;
case RB_RADIO_2:
SetWindowText(hedit,"Radio2");
break;
case RB_RADIO_3:
SetWindowText(hedit,"Radio3");
ShowWindow(hboton,FALSE);
break;
case RB_RADIO_4:
SetWindowText(hedit,"Radio4");
ShowWindow(hboton,TRUE);
break;
}
break;
case WM_DESTROY:
DeleteObject(RadioBrush);
PostQuitMessage (0);
break;
default:
return DefWindowProc (hwnd, message, wParam, lParam);
}
return 0;
}
Gracias, por cualquier ayuda.
Tweet
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Color En Controles