Holas, komo dijo jack el destripador: Vayamos por partes
1. Si kieres mover kualkier ventana, obviamente en windows todos los objetos son ventanas entonces debemos hacer lo siguiente, desde la MFC o la API utilizar MoveWindow, supongo ke hay otros metodos enviando mensaje a la ventana pero al final un buen programador no busca complicarse, tampoco querramos inventar la rueda. Bueno vayamos al tema, en tu Dialogo pon un control STATIC y dale una ID por ejemplo : IDC_STATICMOVIBLE, luego para probar pon un Boton y en su evento Click escribe el siguiente codigo:
- Código: Seleccionar todo
CWnd *pwnd;
CRect rect;
pwnd = GetDlgItem(IDC_STATICMOVIBLE);
pwnd->GetWindowRect(&rect);
ScreenToClient(&rect);
rect.top += 30;
rect.bottom += 30;
pwnd->MoveWindow(rect);
el codigo anterior obtiene un puntero a tu Static, obtiene sus coordenadas y las combierte de coordenadas de pantalla al del cliente, luego le agregamos 30 al top (y 30 al bottom para que no se encoja el Static), y lo movemos, ojo si presionamos otra vez en el boton que realizo este movimiento el Control Static seguira bajando cuantos clicks hagas.
2. El Punto dos, te dire que existen clases o controles que te permiten hacer eso, hay una clase derivada de CStatic, chekea codeproject ahi lo encontraras aki te pongo la URL:
http://209.171.52.99/staticctrl/cmyhyperlink.asp.
3. Si kieres ke algunos controles acepten otros eventos, entonces debes de krear tu klase derivada y en el Wizar krear una variable de tipo control asociando el kontrol ke kieres ke acepte el nuevo evento a la klase derivada ke kreaste. Si no se me entiende puedes hacer lo siguiente, probemos kon el Punto 2.
Primero pon un Static en tu Dialog ponle el ID: IDC_STATICONLYTK y de Caption
http://www.onlytk.tk (un cherry

), luego korre al ClassWizard y krea una Clase kon el boton "Add Class", asegurate ke este derivada de CStatic y has click en aceptar.
Hasta ahi ya tienes tu klase Derivada de CStatic, entonces otra vez abre el ClassWizard y selecciona la nueva clase que creaste, veras que acepta todos los eventos habidos y por haber jejejeje, busca el mensaje WM_MOUSEMOVE, ke sera el enviado por windows a tu kontrol kuando este el mouse encima de este. has dos clicks para ke el ClassWizard te kree la funcion, en esta funcion pon lo siguiente:
- Código: Seleccionar todo
CDC *dc;
CString strText = "www.onlytk.tk";
SetWindowText("");
dc = GetDC();
dc->SetTextColor(RGB(255,33,255));
dc->SetBkMode(TRANSPARENT);
dc->TextOut(0, 0, strText);
ReleaseDC(dc);
CStatic::OnMouseMove(nFlags, point);
Para terminar, abre el ClassWizard, y en Member variables crea una variable de tipo Control que asocie tu IDC_STATICONLYTK con tu clase que creaste derivada de CStatic.
Eso es todo, al pasar sobre el Static este cambiara su texto a otro color, pero mejor usas el de codeproject ke keda mas bonito jejejeje
Salu2
