C/Visual C - SOS: dibujar en una area de un dialogbox C++

 
Vista:

SOS: dibujar en una area de un dialogbox C++

Publicado por leire (8 intervenciones) el 30/08/2004 20:26:25
Epa, alguien puede ayudarme?
Tengo una aplicacion con interfaz gráfico, que tiene q permitir ver un fichero en un area de la propia pantalla. Tengo un fichero con puntos x,y de un dibujo, y lo que quiero es dibujarlo en esa zona de la pantalla gráfica de mi dialog box (es un Edit box). Además, tengo que conseguir que se dibuje pixel a pixel y que el usuario pueda ir viendo como se va formando el dibujo.
Estoy intentandolo con lineto y moveto, pero no se como refrescar esa zona de la pantalla cada vez q leo un pixel, para q se vaya viendo de forma dinámica la evolucion del dibujo.
Espero que podais ayudarme
Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:SOS: dibujar en una area de un dialogbox C++

Publicado por fernando.gomez (1603 intervenciones) el 01/09/2004 17:15:39
Para que se refresque una zona en la pantalla, emplea la función InvalidateRect.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:SOS: dibujar en una area de un dialogbox C++

Publicado por Leire (8 intervenciones) el 01/09/2004 19:51:55
Epa, ya consigo dibujar, pero resulta que me dibuja en una esquinita de la pantalla en vez de en todo el recuadro en el que debiera dibujar. No se si es que estoy escalando mal, utilizo lo siguiente:

CRect area;
m_areaXY.GetWindowRect(&area);
m_vistaxy.HLenght = area.Width() - 2;
m_vistaxy.VLenght = area.Height() - 2;
m_vistaxy.HScale = (float)(CFGDlg.m_maxX- CFGDlg.m_minX)/m_vistaxy.HLenght;
m_vistaxy.VScale = (float)(CFGDlg.m_maxY-CFGDlg.m_minY)/m_vistaxy.VLenght;

Y luego para dibujar utilizo lo siguiente:

m_vistaxy.pDC = m_areaXY.GetDC();
m_vistaxy.pDC->MoveTo((int)((float)evt.x/m_vistaxy.HScale),(int)(m_vistaxy.VLenght-(float)evt.y/m_vistaxy.VScale));
m_vistaxy.pDC->LineTo((int)((float)evt.x/m_vistaxy.HScale),(int)(m_vistaxy.VLenght-(float)evt.y/m_vistaxy.VScale));

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:SOS: dibujar en una area de un dialogbox C++

Publicado por Leire (8 intervenciones) el 01/09/2004 19:51:59
Epa, ya consigo dibujar, pero resulta que me dibuja en una esquinita de la pantalla en vez de en todo el recuadro en el que debiera dibujar. No se si es que estoy escalando mal, utilizo lo siguiente:

CRect area;
m_areaXY.GetWindowRect(&area);
m_vistaxy.HLenght = area.Width() - 2;
m_vistaxy.VLenght = area.Height() - 2;
m_vistaxy.HScale = (float)(CFGDlg.m_maxX- CFGDlg.m_minX)/m_vistaxy.HLenght;
m_vistaxy.VScale = (float)(CFGDlg.m_maxY-CFGDlg.m_minY)/m_vistaxy.VLenght;

Y luego para dibujar utilizo lo siguiente:

m_vistaxy.pDC = m_areaXY.GetDC();
m_vistaxy.pDC->MoveTo((int)((float)evt.x/m_vistaxy.HScale),(int)(m_vistaxy.VLenght-(float)evt.y/m_vistaxy.VScale));
m_vistaxy.pDC->LineTo((int)((float)evt.x/m_vistaxy.HScale),(int)(m_vistaxy.VLenght-(float)evt.y/m_vistaxy.VScale));

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar