用vc给MFC绘图程序添加橡皮擦功能

我用VC已经做好了一个MFC程序,是一个绘图程序,就是能画直线,长方形,圆形,以缩放效果和重绘效果,还能保存的.现在还想做个橡皮擦,现在思路还不是很清晰,毕竟只学了一个学... 我用VC已经做好了一个MFC程序,是一个绘图程序,就是能画直线,长方形,圆形,以缩放效果和重绘效果,还能保存的.现在还想做个橡皮擦,现在思路还不是很清晰,毕竟只学了一个学期,要求是:只要点一下某个图形,该图形就被擦除就行.比如,画了一条直线,只要用橡皮擦点一下该直线就消失.
当然,如果可以实现windows画图程序里的橡皮擦那种部分部分的擦除效果更好.
希望各位大虾最好能提供一下所需的相关类和函数,毕竟我对VC中成千上万的函数及类不清楚.
展开
 我来答
leewycyp
2006-05-19 · TA获得超过134个赞
知道小有建树答主
回答量:107
采纳率:0%
帮助的人:159万
展开全部
其实每次擦除,就是画一个小的背景色的正方形或者小圆!
以 MouseDown 为开始(设置Flag为TRUE)
MouseMove 时触发擦除方法(Flag为TRUE时)
以 MouseUp 为结束(设置Flag为FALSE)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
AiPPT
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图... 点击进入详情页
本回答由AiPPT提供
忘至白葬不情必0T
2006-05-19 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:90%
帮助的人:1.2亿
展开全部
楼主做的是矢量图还是位图,如果是位图,就用leewycyp的方法。
如果是矢量图,把要擦除的图形数据删掉,再重绘其它图形就行了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chang290
2006-05-31 · TA获得超过517个赞
知道小有建树答主
回答量:452
采纳率:100%
帮助的人:0
展开全部
不知道搂主对 CDC 类清不清楚,该类有一种模式教师 NOR 好像。
当使用该模式画图时,两次一样的操作可以将前面的操作察除。
该模式就是 异或 的意思。
具体的你可以去查找一下,相关图书。
下面代码可以参考下
CClientDC dc(this);

if(point)
{
//dc.TextOut(wParam,lParam,"自定义消息画点!");
CPen newPen(PS_DASH,2,RGB(20,30,40)); //创建新画笔
CPen* oldPen=dc.SelectObject(&newPen); //选入设备环境
dc.MoveTo(wParam,lParam);
dc.LineTo(wParam+200,lParam);
dc.SelectObject(oldPen);
}
else
{
dc.SetROP2(R2_NOTXORPEN);
//dc.TextOut(wParam,lParam-15,"自定义消息画点!");
CPen newPen(PS_DASH,2,RGB(20,30,40)); //创建新画笔
CPen* oldPen=dc.SelectObject(&newPen); //选入设备环境
dc.MoveTo(wParam,lParam-15);
dc.LineTo(wParam+200,lParam-15);
dc.SelectObject(oldPen);
}

在同一地方画两次,就能将前面一次察除了。
要实现橡皮查可以使用这个原理
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jill0908
2006-05-19 · TA获得超过487个赞
知道小有建树答主
回答量:1169
采纳率:0%
帮助的人:445万
展开全部
你应该还没做可以选中某个图形吧,只要你做了事情不就解决了.不仅可以删除还可以移动呢!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式