2012-03-12 112 views
0

我有一个用Borland C++ builder编写的应用程序,现在我必须在Visual Studio中编写它。我有Car.h,在这里你可以看到Car.cpp:C++ Builder到Visual C++

#include "Car.h" 
#include "Form.h" 

extern TForm1 *Form1; 

Car::Car() 
{ 
    aCanvas = Form1->FieldImage->Canvas; 
    color = clYellow; 
    ..... 
} 

void Car::draw() 
{ 
    aCanvas->Pen->Color = color; 
    //aCanvas.... 
    //aCanvas.... 
    //some code for drawing.... 
} 

现在,如何绘制该图像中PANEL1这是在表格?我不知道如何摆脱画布,而是使用面板进行绘制。

在Form1_Load的我写的:

Car * car1; 
car1 = new Car; 
car1->draw(); 

回答

0

从我记得有使用C++ Builder来支持小项目,Borland的使用对于C++ Builder自己的类库。这个库没有直接替代C++ Builder的Microsoft MFC/ATL类(如果我没有记错的话,我认为他们称为thiers Object Windows Library(OWL))。

此外,自从我上次使用C++ Builder(是否有最新版本?)Microsoft已经改变了MFC中某些类的行为,特别是与图形相关的行为。

您可能需要弄清楚您在C++ Builder中使用的OWL与您正在使用的Visual Studio版本的MFC/ATL版本之间的映射关系。

最后,我相信你仍然会使用Canvas类来绘制,但是如何访问Canvas类将会改变一点。

+0

Borland C++ Builder使用VCL。 OWL被用在上一代工具Borland C++中。 OWL更像MFC,但VCL更像WinForms,所以几乎不可能将VCL应用程序转换为MFC。 – Jogy 2012-03-29 19:17:51

0

Windows Forms框架是最接近Borland C++ Builder VCL的MS框架。但是您可能需要学习C#才能使用它。我不确定是否可以从C++/CLI使用WinForms。

+0

“*我不确定是否可以使用C++/CLI中的WinForms *”这是,但我不会推荐它。 – ildjarn 2012-03-29 19:22:48

+0

那么,我完成了这个任务,它正在工作。 Borland C++版本有很多不同之处。实际上,当我必须创建一些东西时,我总是使用C#。但这是我必须做的一件小事,我不得不使用C++/CLI。这就像使用C++的第一次经历。 – 2012-03-29 21:38:05