Home   Artículos   Recursos   Foros   
Artíclos recientes publicados en Latindevelopers:
Visual C++: NSDoubleEdit: Un control para el manejo de números decimales en Visual C++.
Visual C++: Implementando una Calculadora en Visual C++
Visual C++: CCommandLine: Una clase para el uso de la linea de comando
Visual C++: Una clase para el manejo del Registro

ayuda con MFC

Aqui programadores en la plataforma Win32 con Visual C++ de Microsoft...

Moderador: latindeveloper

ayuda con MFC

Notapor Alex el Vie Abr 02, 2004 8:30 pm

Hola,

Se que voy perdido y ahí mis grandes dudas acerca de MFC, y por eso necesito ayuda urgente, ya q por mucho q lo intente y sin que nadie me ilumine o me ponga por el buen camino me puedo pasar decadas hasta encontrar la solución. Explico mi problema:

He creado un workspace con dos proyectos: uno es "MFC App Wizard(exe)" cuyo nombre es "draw" y el otro "Win 32 console Application" que su nombre es "principal".
Mi intención es llamar a "draw" desde "principal". En principal, elijo un número del 1 al 11. Miro en unas variables globales que coordenadas corresponden a este número, las guardo en otras variables globales y entonces llamo a OnDraw(pDC). Como se trata de variable globales, mi intención es que dentro de OnDraw al llamar a pDC->Ellipse(x1,y1,x2,y2), me dibujara un círculo con los datos que hay en estas variables.
Cada uno de los proyectos los puedo compilar por separado sin dar errores, pero cuando intento ejecutar "principal.exe" da este error: 0 x C0000005: Acces Violation. Supongo que el problema estará en la llamada a la función OnDraw(),
Como puedo llamar a la función OnDraw() desde otro proyecto??

He escrito abajo el código de pricipal y el de draw para una mayor aclaración. Necesito ayuda muy urgente.
Un saludo




************ CÓDIGO DE PRINCIPAL ******************


#include <iostream.h>
#include "stdafx.h"
#include "draw.h"
#include "drawDoc.h"
#include "drawView.h"



//////////////////////////////
// INITIALS COORDENATES //
//////////////////////////////

int Coord_x1 [ ] = {450, 300, 200, 350, 550, 700, 800, 650, 475, 625, 550};
int Coord_y1 [ ] = { 50, 150, 350, 450, 500, 450, 275, 100, 300, 300, 400};
int Coord_x2 [ ] = {750, 600, 500, 650, 850,1000,1125, 950, 675, 825, 750};
int Coord_y2 [ ] = {350, 450, 650, 750, 800, 750, 600, 400, 500, 500, 600};


int x1,y1,x2,y2;

CDrawView *drawer;
CDC *pDC;

/////////////////////////////////////////////////
// SUBSCRIBE //
/////////////////////////////////////////////////

void main () {


int num;
cout << "Number of Antenna: " << endl;
cin >> num;


x1= Coord_x1[num-1];
y1= Coord_y1[num-1];
x2= Coord_x2[num-1];
y2= Coord_y2[num-1];

drawer ->OnDraw(pDC);

}


******** CODIGO DE drawView.cpp **********

int x1,y1,x2,y2;

void CDrawView::OnDraw(CDC* pDC) {

CDrawDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);

/////////////////////////////////////////////////////
// wRITE TEXT //
/////////////////////////////////////////////////////

char text [] = "Cover zone for mobile telephony ";
pDC ->SetTextColor(RGB(0,0,0));
pDC ->TextOut(25,25,text,strlen (text));


//////////////////////////////////////////////////////
// DRAW POLYGON //
//////////////////////////////////////////////////////

CPen * draw_poly;
CPen Pen (PS_SOLID, 3, RGB (0,0,0));
POINT points [7] = {600, 50, 350, 250, 250, 550, 550, 750, 950, 650, 1100, 350, 600, 50};
draw_poly = pDC ->SelectObject(&Pen);
pDC ->Polyline (points,7);
pDC ->SelectObject (Pen);

//////////////////////////////////////////////////////
// DRAW CIRCLES //
//////////////////////////////////////////////////////

CPen * draw_circles;
CPen Pen2 (PS_SOLID, 1, RGB (0,0,0));

CBrush * antiguoRelleno;
CBrush Relleno (RGB (0,0,255));

draw_circles = pDC ->SelectObject(&Pen2);
antiguoRelleno = pDC ->SelectObject (&Relleno);

pDC->Ellipse(x1,y1,x2,y2);

pDC ->SelectObject (Pen2);

}
Alex
Novato
Novato
 
Mensajes: 1
Registrado: Vie Abr 02, 2004 8:23 pm

Volver a Visual C++

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado