请各位前辈帮忙看看 心里没底

liujiandong972329 2008-10-07 08:50:51
我要用自己的画笔画东西 具体代码如下,请各位前辈帮忙看看,我是新手,不知写的对不对,谢谢!!

CDC dc;
dc.Attach((HDC)m_HDC);//绑定HDC对象,预备画图
CPen MyPen;
CPen* pOldPen;

dc.SetBkMode(TRANSPARENT);//设置背景颜色为透明

CFont f,*POldFont;

f.CreateFont(11,0,0,0,FW_MEDIUM,FALSE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH|FF_SWISS,_T("宋体"));
POldFont=dc.SelectObject(&f);


MyPen.CreatePen(PS_SOLID,0,RGB(0,0,255));//选择画笔的颜色
pOldPen = dc.SelectObject(&MyPen);

dc.SetTextColor(RGB(0,0,255));
.
.
. 画图过程略。
.
.
.


dc.SelectObject(POldFont);
dc.SelectObject(pOldPen);
dc.Detach();
...全文
100 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
liujiandong972329 2008-10-07
  • 打赏
  • 举报
回复

。。。。画完图后


MyPen.DeleteObject();
pOldPen->DeleteObject();
f->DeleteObject();
POldFont->DeleteObject();
dc.Detach();

测试时,系统偶尔会弹出对话框,内容是: 对不起,系统在绘制过程中出现了某种错误,您最好关闭
重新启动本软件。。。。。

如果按我写的这样,删除了POldFont、pOldPen对象,那会出现上面的对话框错误么???


szc21 2008-10-07
  • 打赏
  • 举报
回复
同楼上:不能删除 pOldPen 对象
lwx300 2008-10-07
  • 打赏
  • 举报
回复
要先将POldFont、pOldPen选回DC,才能删除MyPen和f对象,此外不能删除POldFont、pOldPen对象。
liujiandong972329 2008-10-07
  • 打赏
  • 举报
回复
测试过,目前没有发现问题,但以前我是这么写的:

。。。。画完图后


MyPen.DeleteObject();
pOldPen->DeleteObject();
f->DeleteObject();
POldFont->DeleteObject();
dc.Detach();

测试时,系统偶尔会弹出对话框,内容是: 对不起,系统在绘制某种图形时出错......
不知是为什么???
season030441 2008-10-07
  • 打赏
  • 举报
回复
注意一下你的m_HDC有没有获得实际的设备环境。
引力场变动源 2008-10-07
  • 打赏
  • 举报
回复
看起来并没有什么错误的样子,但是为什么不实际测试一下呢?

19,464

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧