• Lunes 29 de Abril de 2024, 21:58

Autor Tema:  Visual C++  (Leído 1515 veces)

ezambrano

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Visual C++
« en: Jueves 20 de Marzo de 2008, 15:41 »
0
Hola,

Estoy programando en vc++ 2003, usando windows form application estoy recibiendo una señal y la grafico en tiempo real , el problema es que la gráfica es muy lenta, no alcanza a dibujar la primera onda y se empieza a dibujar la primera, pense que era un problema de optimizacion pero no lo es ya que al mover la ventana o al redimensionarla la señal se muestra impecable pero al momento de soltar la ventana, se pone lento.

Si alguien sabe como arreglar esto se agradece, tb les dejo el código para que vean como esta hecho, si tienen alguna otra alternativa a este código también se agradece:

Código: Text
  1. public: void dibujar(unsigned char* data){
  2.  
  3.   int i=0, x1=0, y1=255;
  4.   float prop;
  5.   g=Graphics::FromHwnd(scope->Handle); //scope es un PictureBox
  6.  
  7.   Pen* myPen = new Pen(Color::Red);  
  8.  
  9.   myPen->Width = 1;
  10.   prop =  (float)scope->Width/TBuffer;
  11.   g->ScaleTransform(prop, 1.0f );
  12.   g->Clear(Color::White);
  13.  
  14.   for (i=0; i<TBuffer; i++) //TBuffer puede ser entre 1 a 8190
  15.   {  
  16.     g->DrawLine(myPen, x1,y1 ,i , data[i]);
  17.     x1=i;
  18.       y1=data[i];
  19.   }
  20. }
  21.  


Se que utilizando MFC puedo hacerlo de mejor forma pero primera vez que trabajo con VC y me pierdo con las ventanas en MFC, aparte que manejo bastantes controles y los necesito en la misma ventana del grafico.

Cualquier idea se agradece, saludos.
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

ezambrano

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Visual C++
« Respuesta #1 en: Lunes 24 de Marzo de 2008, 15:07 »
0
¿Nadie? :(

carmamezo

  • Miembro MUY activo
  • ***
  • Mensajes: 232
    • Ver Perfil
Re: Visual C++
« Respuesta #2 en: Viernes 4 de Abril de 2008, 12:44 »
0
Hola,
no lo tengo muy claro pero parece que no refresca la pantalla, obliga a refrescar la pantalla cada vez que pintes un nuevo dato a ver que pasa...

Un saludo.
No hay tonto más molesto que el ingenioso.

ezambrano

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Visual C++
« Respuesta #3 en: Viernes 4 de Abril de 2008, 16:40 »
0
Eso si lo hace, el problema que genera las líneas demasiado lento, se puede ver como las va dibujando cuando debería ser instantáneo, ahora estoy probando con DrawLines ya que dibuja las líneas instantaneamente pero consume mas recursos, en el caso del DrawLine las lineas las dibuja lento pero no consume muchos recursos.

Saludos.