• Viernes 15 de Noviembre de 2024, 09:55

Autor Tema:  Ayuda Con Clase Derivada De Cstatic  (Leído 877 veces)

GuZMaN

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Ayuda Con Clase Derivada De Cstatic
« en: Viernes 4 de Junio de 2004, 19:42 »
0
Hola y gracias anticipadas;

tengo una clase derivada de CStatic que muestra el texto del control de manera que parezca un hiperlink (en azul y subrayado), pero cómo la clase base es CStatic sólo responde a los "clics" del ratón mediante el mensaje BN_CLICKED.

Yo lo que quiero es que, además de eso, sea capaz de abrir el diálogo al que hace referencia el hiperlink cuando el control  tenga el foco y se pulse ENTER.

Para ello he usado este código, pero aunque compila y captura las pulsaciones de ENTER, no envía correctamente el mensaje (he mirado la ayuda de OnLButtonDown() y por lo que se ve el sistema se "calza" el CPoint que se le pasa como argumento y pone el actual del ratón o algo por el estilo):

---------------------------------------------------------------------------

BOOL CHiperlink::PreTranslateMessage(MSG* pMsg)
{
   switch (pMsg -> message)
   {
     case WM_KEYDOWN:
     if((pMsg -> wParam == VK_RETURN) & (TieneFoco == TRUE))
    {
   CRect Rect;
   CPoint Point;
                GetClientRect(Rect);
   ClientToScreen(Rect);
   Point = Rect.TopLeft();
   Point.Offset(1,0);
   OnLButtonDown(MK_LBUTTON, Point);
                      return TRUE;
    }
    break;
}
return CStatic::PreTranslateMessage(pMsg);
}
---------------------------------------------------------------------------

Si alguien sabe otra forma de hacer lo mismo, otro planteamiento distinto, qué hago mal,... le agradecería que me lo comentase.

Saludos.