none
Extender un control OCX mediante Métodos Extensores evitando Herencia RRS feed

  • Pregunta

  • Hola a todos,

     

    Me encuentro en una situación en la que dispongo de un control OCX y como la herencia desde .NET me está dando muchos problemas, me gustaría extender dicha clase usando los métodos extensores, que hasta ahora no me han dado muchos problemas, incluso con ese control.

     

    El control me permite visualizar en pantalla algunos elementos geométricos pero como no soporta el uso directo de dibujado encima al estilo GDI+ (métodos tales drawline, drawellipse, etc.) pues pensé en estos métodos extensores.

     

    Había oído hablar de que podría sobreescribir el método WndPrc() pero luego al usar el control OCX en mi código si voy a usar algún método o propiedad tengo incompatibilidad. Así usando el código siguiente, pierdo la funcionalidad original de la clase:

     

    Code Snippet
    Private Const WM_PAINT = &HF

         Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
             MyBase.WndProc(m)
             If m.Msg = WM_PAINT Then
               Dim g As Graphics = Me.CreateGraphics()
               g.DrawLine(pens.Red, 10, 10, 200, 200)
               g.Dispose()
             End If
       End Sub

     

     

    En resumen, ¿alguien sabe cómo podría derivar el código siguiente mediante métodos extensores, permitiéndome así, poder usar la clase del control OCX como de costumbre, agregándole la funcionalidad de dibujo encima mediante métodos y propiedades de GDI+?

     

    Muchísimas gracias por adelantado.

     

    Francisco J.

    • Cambiado Enrique M. Montejo domingo, 8 de mayo de 2011 10:00 interoperabilidad (De:Lenguaje VB.NET)
    martes, 4 de noviembre de 2008 19:36