社区
界面
帖子详情
[GDI]如何擦除DC上次画的内容
YaYiYaO
2007-01-30 04:40:54
自画控件,背景透明,每隔一段时间刷新重画
现在的问题是每次重画,上次的东西没有擦掉,画面重叠
问:如何将上次画的东西擦掉??
注:因为背景是透明的,背景显示的是父窗口,父窗口背景复杂,不知道怎么画的,因此不可能重画背景
记得SetROP2(R2_NOTXORPEN),画两次,可以将上次PEN画的线擦掉
那能不能用Bitblt画反色将上次的画面擦掉
还有Bitblt的XOR,OR,AND操作我实在是搞不清楚,有没有人明白的,解释一下
...全文
583
6
打赏
收藏
[GDI]如何擦除DC上次画的内容
自画控件,背景透明,每隔一段时间刷新重画 现在的问题是每次重画,上次的东西没有擦掉,画面重叠 问:如何将上次画的东西擦掉?? 注:因为背景是透明的,背景显示的是父窗口,父窗口背景复杂,不知道怎么画的,因此不可能重画背景 记得SetROP2(R2_NOTXORPEN),画两次,可以将上次PEN画的线擦掉 那能不能用Bitblt画反色将上次的画面擦掉 还有Bitblt的XOR,OR,AND操作我实在是搞不清楚,有没有人明白的,解释一下
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
rayland
2007-01-31
打赏
举报
回复
要想不重画背景,可以用 XOR 操作。
在原位置上先重画一次。 //两次 XOR 后,恢复之前的画面。
然后在新位置上 XOR 。
//这种方法的可能后果之一,是你不知道背景已经刷新过,而继续在原位置 XOR,结果反而会留下痕迹。
或者你重画前发消息通知被覆盖的窗口重画自身.
YaYiYaO
2007-01-31
打赏
举报
回复
父窗口InvalidateRect还真的可以的
但是我以前也试过,那个时候没有效果,后来想起来是应为父窗口设了WS_CLIPCHILDREN风格
感谢夏娃兄弟,呵呵
mynamelj
2007-01-30
打赏
举报
回复
你要想文字移动,干脆把窗口背景弄成透明的,直接移动子窗口就不会产生这种问题了。
mynamelj
2007-01-30
打赏
举报
回复
通知父窗口重绘试试:
CRect rect;
GetWindowRect(&rect);
GetParent()->ScreenToClient(&rect);
GetParent()->InvalidateRect(&rect);
YaYiYaO
2007-01-30
打赏
举报
回复
没有重载WM_ERASEBKGND消息
就比如:
void CMyWnd::OnPaint()
{
CPaintDC dc(this);
int OldMode = dc.SetBkMode(TRANSPARENT);
dc.TextOut(10,m_CurPos,"move text");
dc.SetBkMode(OldMode);
}
m_CurPos是不断变化的,实现文字的移动
大家可以试一下,文字是重叠的
mynamelj
2007-01-30
打赏
举报
回复
不可能不会擦除,除非你重载了WM_ERASEBKGND消息
Windows游戏编程系列之1:GUI窗口界面编程及游戏入门实战
画
点、线 28 颜色COLORREF 29 矩形 29
画
圆、饼图、弦图 30 5、
GDI
编程之自定义
画
笔
画
刷
画
笔简介 32
画
刷简介 33
画
笔案例 33
画
刷案例 34 6、
GDI
编程之绘制文字 DrawText函数 35 TextOut 函数 (win
gdi
.h) ...
GDI
基础函数使用绘制线条和图形
画
笔CPen、
画
刷CBrush、字体CFont、位图CBitmap、调色板CPalette等都是
GDI
对象,通常在函数没有参数指定的情况下我们使用的是
DC
当前默认
GDI
对象,如在使用MoveTo/LineTo
画
线的时候线条的颜色是黑色实线,即当前
DC
...
37_MFC自绘UI你离不开
GDI
绘图
MFC自绘UI你离不开
GDI
绘图
GDI
(Graphics Device Interface)是图形设备接口的英文缩写,处理Windows程序的图形和图像输出。程序员不需要关心硬件设备及设备驱动,就...设备环境(
DC
) 设备无关性(也称设备独立性)是Windo
C#
GDI
高效绘图(转载)
双缓冲技术双缓冲是将图片在显示到
DC
前,现在要内存建一个
DC
,也就是用于存储这张图片的内存区,然后在将这部分update到你要显示的地方这样,可以防止
画
面抖动很大这样和你说吧,如果要实现你要的效果,你必须用指针访问...
windows应用(vc++2022)MFC基础到实战(4)-
画
线程序
目录 CWnd 对象
画
图程序 新建MFC项目 鼠标位置成员变量 类向导增加消息处理函数 扩展
画
线功能 LineTo 函数 (win
gdi
.h) 两种常用
画
线方式 移动鼠标
擦除
和绘制线 继续扩展 CWnd 对象 CWnd 对象与 Windows 窗口不同,...
界面
15,979
社区成员
115,896
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章