sos!!如何将写在屏幕上的东西抹掉!!

mirong 2000-09-07 04:13:00
我利用获得的屏幕HDC,想在屏幕上实时显示现在的时间,但是我该如何
抹掉先前的时间?当然,效果要平滑,闪烁不明显。
大虾,救救我!
...全文
340 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
sxbyl 2000-09-09
  • 打赏
  • 举报
回复
如果考虑桌面背景变化的情况,那就麻烦了,你需要关注桌布是否发生了变化,如果发生了变化,一切都从头开始。至于桌布的变化,你可以在程序中察看\HKEY_CURRENT_USER\Control Pannel\Desktop中的Wallpaper键。
bulehawk 2000-09-08
  • 打赏
  • 举报
回复
你可以用获取的窗口句柄HWND 然后用SetwindowText()函数
sxbyl 2000-09-08
  • 打赏
  • 举报
回复
方法一:在程序开始时,先用CBitmap的CreateCompatibleBitmap(...)建立一个CBitmap对象,然后将桌面上对应区域的内容拷进来,留作备份,然后你就可以在该区域写时间,下一次写时间实现把备份内容恢复就可以了。如果想改善该区域的显示效果,你也可以先把备份内容再拷一份,将时间写在上面,一起贴到桌面上,这样就不会出现闪烁现象。(注意,用InvalidateRect更新时rect为你写时间的区域)。
上面的方法一定是可行的。
方法二:刷新时间前先将桌面属性设为透明(这样时间的背景仍是原桌面),再用SetROP2将绘图属性设为异或。这样,要抹去以前的内容,只需在原处绘制同样的内容即可(两次异或输出的结果与没有输出时的结果一样)。
这种方法编程十分简单,只是我不知道SetROP2会不会影响TextOut,如果影响的话,应该就没问题了,否则,就不行了。还有,用第二种方法在每次刷新完时间后,最好将桌面的绘图属性恢复过来(刷新前先作备份),应为桌面是一个共享的资源,别的程序可能也会用到。
bigjim 2000-09-08
  • 打赏
  • 举报
回复
先用Xor方式重写一下原来的时间,然后在写新时间
mirong 2000-09-08
  • 打赏
  • 举报
回复
我如何才能用InvalidateRect()只更新我写时间的区域
我用InvalidateRect()时,为什么他老引起整个桌面的重绘
mirong 2000-09-08
  • 打赏
  • 举报
回复
将桌面上对应区域的内容拷进来,留作备份,然后再写时间,
那么如果桌面有了改变,那么起不是有以前的一部分在现在的
桌面上.
shines77 2000-09-07
  • 打赏
  • 举报
回复
抹掉?真笨,你用COLOR_WINDOW颜色填充一下不就可以了,在写上去?

重绘区域用RedrawWindow()。
mirong 2000-09-07
  • 打赏
  • 举报
回复
为什么它会使整个窗口重绘
HWND hwnd=0;
InvalidateRect(hwnd,&oldrect,false);
//or InvalidateRect(hwnd,&oldrect,true);
效果都一样
我只想重绘我显示时间的一个40*120的区域
Areslee 2000-09-07
  • 打赏
  • 举报
回复
InvalidateRect()
mirong 2000-09-07
  • 打赏
  • 举报
回复
我是指每隔 一秒 直接到桌面左上角上写现在时间(句柄为0的窗口)。如果不抹掉先前
写上去的时间,那么再写上去时,会和先前的东西重叠在一起。
shines77 2000-09-07
  • 打赏
  • 举报
回复
直接覆盖原来的图像不行吗?你指的时间是哪个啊?右下角的那个吗?

16,470

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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