mfc如何擦除textout 绘制文字

我在picturecontrol里面绘制文字,想要擦拭picturecontrol上面的一块区域,其他区域内容不变如下图,只擦拭红色的A区域::InvalidateRec... 我在picture control里面绘制文字,想要擦拭picture control上面的一块区域,其他区域内容不变
如下图,只擦拭红色的A区域

::InvalidateRect(0, rect, TRUE); 把整个picture control区域都擦拭了
请问如何才能只擦拭A区域???
展开
 我来答
飞雨明泉
2013-08-15 · 分享生活,享受生活,做自己的主人
飞雨明泉
采纳数:52 获赞数:32

向TA提问 私信TA
展开全部
设置一个标志位来表示是否想擦除a区域 当想擦除时把标志位设置TRUE 并且刷新该区域 在onpain函数中根据这个标志位来确认是否绘制A区域,在想绘制A区域的地方把标志位设为FALSE 刷新该区域
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
任明星Ming
2013-08-15 · TA获得超过798个赞
知道小有建树答主
回答量:1061
采纳率:100%
帮助的人:1147万
展开全部
这个有很多种办法,你把要擦除的区域分为两块,进行分别绘制。
一块绘制你的左边,一块绘制你的右边。在OnPaint时,进行分别绘制。
更多追问追答
追问
用那个函数进行擦拭啊?
有例子没有呢?
追答
你还需要灵活点运用CDC啊。

你的CDC不是既可以画图,也可以画字呢?那就把它拆分成三块。
第一块,画你的边框,就是蓝色的那个框。
dc.FrameRect()。
第二块,画你左边的文字。
dc.DrawText(leftRect, strLeftText);
第三块,画你右边的文字,加个if语句判断是否需要画即可。
if(bDrawRight)
{
dc.DrawText(rightRect, strRightText);
}
来自:求助得到的回答
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小陆仁
2013-08-16 · TA获得超过162个赞
知道小有建树答主
回答量:255
采纳率:0%
帮助的人:167万
展开全部
计算下字符长度 每个字节占 m 。将rect.right -= m
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式