Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Riki_89D en 21 Septiembre 2011, 16:12 pm



Título: Problema con control STATIC
Publicado por: Riki_89D en 21 Septiembre 2011, 16:12 pm
Hola que tal,intenot poner un color de fondo en un static,tengo 4 statics en la APP,tengo el siguiente code:


Código
  1.  
  2. #define ID_SIMAGE1 02
  3. SIMAGE1 = CreateWindowEx(0,"STATIC","",SS_LEFT|WS_VISIBLE|WS_CHILD|SS_ICON,210,40,50,50,Man,(HMENU)ID_SIMAGE1,0,0);
  4.  
  5. case WM_CTLCOLORSTATIC:
  6. {
  7. if((HWND) lParam == GetDlgItem(Man,ID_SIMAGE1))
  8. {
  9. SetBkColor((HDC)wParam,0x1d1c1c);
  10. }
  11.  


Pues nada no cambia de color....:(


ya nse que mas probar


Título: Re: Problema con control STATIC
Publicado por: naderST en 21 Septiembre 2011, 20:25 pm
Prueba esto:

Código
  1. SetBkColor((HDC)wParam,RGB(29,28,28));

Y sino funciona asegúrate que se este cumpliendo la condición del if.


Título: Re: Problema con control STATIC
Publicado por: Riki_89D en 21 Septiembre 2011, 22:56 pm
Pues no,lo probe y nada no funciono,el IF comipla :S



:( si no hay solucion no abra mas narices que poner la imagen del mismo color que el fondo,pero yo queria hacerlo profesionalmente :(



saludos


Título: Re: Problema con control STATIC
Publicado por: naderST en 22 Septiembre 2011, 01:01 am
Pero si la imagen no es transparente no se va a mostrar el color que estas asignando... Algo debe estar mal.


Título: Re: Problema con control STATIC
Publicado por: Karman en 22 Septiembre 2011, 04:30 am
Hola que tal,intenot poner un color de fondo en un static,tengo 4 statics en la APP

si mirás la documentación del mensaje WM_CTLCOLORSTATIC (http://msdn.microsoft.com/en-us/library/windows/desktop/bb787524%28v=vs.85%29.aspx):

Citar
If an application processes this message, the return value is a handle to a brush that the system uses to paint the background of the static control.

Código
  1. case WM_CTLCOLORSTATIC:
  2.  if((HWND) lParam == GetDlgItem(Man,ID_SIMAGE1))
  3.    return CreateSolidBrush(0x1d1c1c);

S2


Título: Re: Problema con control STATIC
Publicado por: Riki_89D en 22 Septiembre 2011, 09:49 am
Hola que tal?¿,bien,eso si funciono :),la proxima vez antes de preguntar mirare de leerme bien la documentacion de la msdn,siento las molestas y gracias de verdad!!


saludos


ADJUNTO:

Por cieto una ultima duda,acabo de repsar en la MSDN el mensaje WM_MOUSEMOVE,lo necesito para un cotntrol BUTTON,pero estoy intentando aver como detectar cuando el raton pasa por encima del control,parece que ese mensaje solo funciona con la ventana principal,e mirado muchos ejemplo pero no e sacado nada de bueno,alguein sabe algo al respecto?


gracias!!


Título: Re: Problema con control STATIC
Publicado por: naderST en 22 Septiembre 2011, 18:14 pm
SetWindowLongPtr y GWLP_WNDPROC para que "interceptes" los mensajes del botón.

Citar
Return value

Type: LONG_PTR

If the function succeeds, the return value is the previous value of the specified offset.