我是靠谱客的博主 饱满保温杯,最近开发中收集的这篇文章主要介绍当SetROP2(R2_NOT)不能擦除文字时,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 http://hi.baidu.com/ilotus_y/blog/item/01110a3e35e755fd838b13c7.html

对于擦除屏幕上的图形如矩形、三角形等,两次调用
SetROP2(hdc,R2_XORPEN);
Rectangle();
就可以产生先输出矩形,然后擦除的效果。

但对于擦除文字,两次调用
SetROP2(hdc,R2_XORPEN);
TextOut();
却不能得到输出文字后再擦除的效果。

============================

寫字前,把寫字的矩形BitBLt到一個内存DC上面,然後抹字的時候在從那個内存DC BitBlt回來。

============================

OnDraw里
CDC mem;
CBitmap memmap;
mem.CreateCompatibleDC(pDC);
memmap.CreateCompatibleBitmap(m_pDC,1000,1000);
CBitmap *memoldmap=mem.SelectObject(&memmap);
/*
在这里画你的字,对mem的```
*/
pDC-> BitBlt(0,0,1000,1000,&mem,0,0,SRCCOPY);
mem.SelectObject(memoldmap);
memmap.DeleteObject();


重载BOOL CXXXView::OnEraseBkgnd(CDC* pDC)
直接return TRUE;

===================================

最后

以上就是饱满保温杯为你收集整理的当SetROP2(R2_NOT)不能擦除文字时的全部内容,希望文章能够帮你解决当SetROP2(R2_NOT)不能擦除文字时所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部