Estou tentando fazer um programa para desenhar com o mouse (dando só um clique) em uma janela windows form usando o visual c++, mas não está funcionando quando clico não desenha...
// elementos.h
// Defines element types
#pragma once
using namespace System;
using namespace System::Drawing;
namespace CLRSketcher
{
// The base class for all elements
public ref class Element abstract
{
protected:
Point position;
Color color;
System::Drawing::Rectangle boundRect;
Pen^ pen;
public:
virtual void Draw(Graphics^ g) abstract;
};
// The class defining a line element
public ref class Line : Element
{
protected:
Point end;
public:
// Constructor
Line(Color color, Point start, Point end)
{
pen = gcnew Pen(color);
this->color = color;
position = start;
this->end = end;
boundRect = System::Drawing::Rectangle(Math::Min(position.X, end.X),
Math::Min(position.Y, end.Y),
Math::Abs(position.X - end.X), Math::Abs(position.Y - end.Y));
// Provide for lines that are horizontal or vertical
if(boundRect.Width < 2) boundRect.Width = 2;
if(boundRect.Height < 2) boundRect.Height = 2;
}
// Function to draw a line
virtual void Draw(Graphics^ g) override
{
g->DrawLine(pen, position, end);
}
};
// The class defining a rectangle element
public ref class Rectangle : Element
{
protected:
public:
Rectangle(Color color, Point p1)
{
pen = gcnew Pen(color);
this->color = color;
position = p1;
boundRect = System::Drawing::Rectangle(position, Size(20, 20));
}
virtual void Draw(Graphics^ g) override
{
g->DrawRectangle(pen, position.X-10, position.Y-10, 20, 20);
}
};
// The class defining a circle element
public ref class Circle : Element
{
protected:
int width;
int height;
public:
Circle(Color color, Point center, Point circum)
{
pen = gcnew Pen(color);
this->color = color;
int radius = safe_cast<int>(Math::Sqrt(
(center.X-circum.X)*(center.X-circum.X) +
(center.Y-circum.Y)*(center.Y-circum.Y)));
position = Point(center.X - radius, center.Y - radius);
width = height = 2*radius;
boundRect = System::Drawing::Rectangle(position, Size(width, height));
}
virtual void Draw(Graphics^ g) override
{
g->DrawEllipse(pen, position.X, position.Y, width,height);
}
};
}
Pergunta
diegobill
Estou tentando fazer um programa para desenhar com o mouse (dando só um clique) em uma janela windows form usando o visual c++, mas não está funcionando quando clico não desenha...
ARQUIVO Form1.h:
-----------------------------------------------------
ARQUIVO elementos.h: --------------------------------------------------------------------- Editado por quintelabAdicionado BBCode Code
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.