no puedo cambiar color de fondo

Iniciado por ELDORADOV8, 24 Mayo 2009, 17:32 PM

0 Miembros y 1 Visitante están viendo este tema.

ELDORADOV8

Estimado karmy,

Gracias a los tutes, podemos cambiar facilmente colores de fondo en formularios:

Delphi, con reshacker
Visual Basic con, Vbrestorator u decompiler

¿Pero y en visual C++ 6.0?, ¿Como podemos cambiar el color de fondo de una ventana?

Ejemplo:
http://www.filefactory.com/file/ag176gf/n/8_EXE
mirror:

http://www.easy-share.com/1905347172/8.EXE

Gracias cualquier idea

karmany

En Visual C++ yo creo que no se puede cambiar desde la edición de recursos, así que te tocará hacer un injerto.

Mira, la forma de modificar el fondo de un formulario en Visual C++ (con API) es capturando el mensaje: WM_CTLCOLORDLG
Como ya sabes, para la captura de mensajes se suele utilizar en C++ y Windows lo siguiente:
LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)

Capturando WM_CTLCOLORDLG y modificando el color de fondo, se hace así:
WM_CTLCOLORDLG:
CreateSolidBrush, 00876540h
retorno

En los mensajes de Windows:
136h =  WM_CTLCOLORDLG

Resumiendo: (Es mi forma de verlo, seguramente a otro se le ocurra algo diferente o más fácil) Tendrás que localizar WndProc y probar a hacer un injerto comparando el mensaje enviado. Te puede ayudar por ejemplo el primer mensaje que se suele capturar, que es: 110h =  WM_INITDIALOG.

He buscado algún ejemplo por la red usando WM_CTLCOLORDLG y he encontrado uno que seguramente te ayude, escrito en ensamblador. Así te puedes hacer una idea de cómo se modifica el fondo. Lo puedes descargar de aquí:
http://www.zshare.net/download/5207310700a4d6b7
El autor del ejemplo es un tal zuqo.

ELDORADOV8

Muchas gracias por tu ayuda, karmy, llegare hasta donde pueda, ya que es un poquito avanzado para mi.