比如Pen* pen = new Pen(Color::Blue, 1);
如果我delete pen;析构会有问题,好像是debug时会有int3的user breakpoint。网上查到好像应该用dispose(),但是Pen中并无此函数。我用new主要是想实现这样一个功能,有一个函数叫MyDrawLine(int iOption),在OnPaint中调用,MyDrawLine负责画线,画笔由iOption指定,然后根据iOption将具体的画笔赋值给pen指针,后面直接就用pen指针来画了,但是这样的话在MyDrawLine末尾我不知道如何析构pen指针指向的对象?void MyClass::MyDrawLine(int iOption)
{
Pen* pen;
if (iOption == 0)
pen = new Pen(Color::Blue, 1);
else if (iOption == 1)
pen = new Pen(Color::Red, 1);
....
}我想到的另一种方法就是将Pen对象设成类的成员,然后在类的初始化列表中构造出来
CMyStatic::CMyStatic(CWnd* pParent, int iGraphX, int iGraphY, bool bPolicy)
:penD(Color::Black, 1), penR(Color::Blue, 1), penU(Color::Blue, 1), penK(Color::Gray, 1), penG(Color::Black, 3),
penI(Color::Red, 2)
{}
但是这样取得的penD等的lastResult显示GdiplusNotInitialized,应该是初始化未成功,这个也不知道怎么解决。当然如果能够解决的话,第二种方法应该效率高一些。请问这两种方法应该如何才能正确实现?
如果我delete pen;析构会有问题,好像是debug时会有int3的user breakpoint。网上查到好像应该用dispose(),但是Pen中并无此函数。我用new主要是想实现这样一个功能,有一个函数叫MyDrawLine(int iOption),在OnPaint中调用,MyDrawLine负责画线,画笔由iOption指定,然后根据iOption将具体的画笔赋值给pen指针,后面直接就用pen指针来画了,但是这样的话在MyDrawLine末尾我不知道如何析构pen指针指向的对象?void MyClass::MyDrawLine(int iOption)
{
Pen* pen;
if (iOption == 0)
pen = new Pen(Color::Blue, 1);
else if (iOption == 1)
pen = new Pen(Color::Red, 1);
....
}我想到的另一种方法就是将Pen对象设成类的成员,然后在类的初始化列表中构造出来
CMyStatic::CMyStatic(CWnd* pParent, int iGraphX, int iGraphY, bool bPolicy)
:penD(Color::Black, 1), penR(Color::Blue, 1), penU(Color::Blue, 1), penK(Color::Gray, 1), penG(Color::Black, 3),
penI(Color::Red, 2)
{}
但是这样取得的penD等的lastResult显示GdiplusNotInitialized,应该是初始化未成功,这个也不知道怎么解决。当然如果能够解决的话,第二种方法应该效率高一些。请问这两种方法应该如何才能正确实现?
解决方案 »
- 列表框中显示bmp图片的问题
- 这种界面怎么做?
- WjcDes这个代码 如果单线程加密是好的。。如果多线程加密就开始。。。。。。出错了。请问问题在那里。
- 请教:用VC如何实现(VB中读写随机文件)的功能?在线等,解决就结贴。
- 有关消息问题?
- VC中使用IXMLHTTPRequest获取URL信息的问题,有代码*********************************************
- CORBA,DCOM,EJD分别是什么?他们各有什么功能和特点?他们之间有什么区别?
- 关于通过HTTP协议访问组件
- MFC窗口最小化到托盘
- DirectShow采集USB双码流问题
- 如何让动态创建页面上的动态创建的按钮支持拖拽消息.
- SOCKET recv 缓冲区问题
程序最后退出,或者析构时
GdiplusShutdown(gdiplusToken);
请问pen = new Pen(Color::Blue, 1);与pen = ::new Pen(Color::Blue, 1);有什么区别吗?你是指加了::后我delete就不会出错是吗?回xuying123456:
请注意看第一段:)
如果我delete pen;析构会有问题,好像是debug时会有int3的user breakpoint。网上查到好像应该用dispose(),但是Pen中并无此函数。