vb.net2005 在桌面上用DrawString画出文字后如何清除掉?

九品仙 2006-08-27 10:44:15
下面这一段是在桌面上输出的文字,怎么样才能清楚掉这些文字?
Declare Auto Function GetDC Lib "user32" (ByVal hwnd As Integer) As IntPtr

'button1单击事件
------------------------
Dim p As System.IntPtr = GetDC(0) '取得屏幕
Dim g As System.Drawing.Graphics = System.Drawing.Graphics.FromHdc(p)

g.DrawString("桌面上显示的字符串", (New System.Drawing.Font("宋体", 15)), (New System.Drawing.SolidBrush(System.Drawing.Color.White)), 3, 3)

在网上看到有人说,把原来的背景复制,然后输出文字,消除的时候原来的背景覆盖。但是如何复制那个区域的背景,以及如何覆盖不知道用什么命令来实现。
上面这种方法感觉不太好,要是在看影片的时候,背景是活动的,那么还原的时候岂不是不对了。
另外不知道有没有别的好方法?
...全文
468 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
九品仙 2006-08-30
  • 打赏
  • 举报
回复
顶一下,有高手再指点一下么?
九品仙 2006-08-28
  • 打赏
  • 举报
回复
还是回到原点:在Form里,如果窗体透明度Opaticy设为0%(透明),那么怎么样才能把上面的控件的透明度为100%(不透明)呢?
didi_hb_005 2006-08-28
  • 打赏
  • 举报
回复
up

---------------------------------------------------------------------------------------------
腰缠70元到月入近10万
http://www.hunbei.com.cn/Article/ArticleShow.asp?ArticleID=453

IT工程师 毕业4年我年薪涨到30万
http://www.hunbei.com.cn/Article/ArticleShow.asp?ArticleID=511

26岁青年坐拥千万域名资产 从小玩家变成CEO
http://www.hunbei.com.cn/Article/ArticleShow.asp?ArticleID=515

程序员的酸甜苦辣:告别Coding
http://www.hunbei.com.cn/Article/ArticleShow.asp?ArticleID=341

从月薪3500到700万(一)
http://www.hunbei.com.cn/Article/ArticleShow.asp?ArticleID=170

网络草根月赚3000的十种方法
http://www.hunbei.com.cn/Article/ArticleShow.asp?ArticleID=517

如果我是女的 我肯定不会嫁给做网站的
http://www.hunbei.com.cn/Article/ArticleShow.asp?ArticleID=512
九品仙 2006-08-28
  • 打赏
  • 举报
回复
这个还是不行啊,有没有代码?我看看
RedrawWindow
VirtualDesktop 2006-08-28
  • 打赏
  • 举报
回复
直接API Update桌面让他刷新

如果你在看电影,那个文字是画不上背景那个的吧?一画上去就被系统擦除了
九品仙 2006-08-28
  • 打赏
  • 举报
回复
上次有人教我是用DrawString的,不错啊,可是出来了消不掉,确实麻烦。微软也不做好一点,加一条移除的命令。我在想如果以后要做桌面动画的,还得要消掉DrawString画出来的东西,所以这个题目还没有解掉!等待ing....
VirtualDesktop 2006-08-28
  • 打赏
  • 举报
回复
RedrawWindow

试试这个API
VirtualDesktop 2006-08-28
  • 打赏
  • 举报
回复
倒~你换墙纸做什么
你向桌面发送f5键看看
九品仙 2006-08-28
  • 打赏
  • 举报
回复
Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByRef lpvParam As Any, ByVal fuWinIni As Long) As Long
Private Const SPIF_UPDATEINIFILE = &H1
Private Const SPI_SETDESKWALLPAPER = 20

SystemParametersInfo ( spi_setdeskwallpaper,True,"",spif_updateinifile )

用这个刷新桌面,结果桌面没了,变成深灰色的了,但是我要消除的字还在。。。晕
九品仙 2006-08-28
  • 打赏
  • 举报
回复
刷新桌面我也想到了,正在试验,担心会不会速度太慢,搞得整个画面闪一下,那就不好看了。
VirtualDesktop 2006-08-28
  • 打赏
  • 举报
回复
我汗死....原来你要这样...为什么不早说................
九品仙 2006-08-28
  • 打赏
  • 举报
回复
搞定了:用不规则装体,把窗体背景搞成白色的,然后在设置Transparencykey设置成白色,这样实现窗体的透明,在窗体上放个Label,设置
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.SetStyle(ControlStyles.SupportsTransparentBackColor, True)
End Sub
这样Label的Blackcolor就可以设置成透明了。最终实现透明显示文字,而且想让它没它就没的效果。哈哈哈哈哈……

16,555

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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