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

时间:2023-02-10 20:52:31
下面这一段是在桌面上输出的文字,怎么样才能清楚掉这些文字?
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) 

在网上看到有人说,把原来的背景复制,然后输出文字,消除的时候原来的背景覆盖。但是如何复制那个区域的背景,以及如何覆盖不知道用什么命令来实现。
上面这种方法感觉不太好,要是在看影片的时候,背景是活动的,那么还原的时候岂不是不对了。
另外不知道有没有别的好方法?

12 个解决方案

#1


直接API Update桌面让他刷新

如果你在看电影,那个文字是画不上背景那个的吧?一画上去就被系统擦除了

#2


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

#3


刷新桌面我也想到了,正在试验,担心会不会速度太慢,搞得整个画面闪一下,那就不好看了。

#4


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 )

用这个刷新桌面,结果桌面没了,变成深灰色的了,但是我要消除的字还在。。。晕

#5


倒~你换墙纸做什么
你向桌面发送f5键看看

#6


RedrawWindow 

试试这个API

#7


这个还是不行啊,有没有代码?我看看
RedrawWindow

#8


还是回到原点:在Form里,如果窗体透明度Opaticy设为0%(透明),那么怎么样才能把上面的控件的透明度为100%(不透明)呢?

#9


搞定了:用不规则装体,把窗体背景搞成白色的,然后在设置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就可以设置成透明了。最终实现透明显示文字,而且想让它没它就没的效果。哈哈哈哈哈……

#10


我汗死....原来你要这样...为什么不早说................

#11


上次有人教我是用DrawString的,不错啊,可是出来了消不掉,确实麻烦。微软也不做好一点,加一条移除的命令。我在想如果以后要做桌面动画的,还得要消掉DrawString画出来的东西,所以这个题目还没有解掉!等待ing....

#12


顶一下,有高手再指点一下么?

#1


直接API Update桌面让他刷新

如果你在看电影,那个文字是画不上背景那个的吧?一画上去就被系统擦除了

#2


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

#3


刷新桌面我也想到了,正在试验,担心会不会速度太慢,搞得整个画面闪一下,那就不好看了。

#4


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 )

用这个刷新桌面,结果桌面没了,变成深灰色的了,但是我要消除的字还在。。。晕

#5


倒~你换墙纸做什么
你向桌面发送f5键看看

#6


RedrawWindow 

试试这个API

#7


这个还是不行啊,有没有代码?我看看
RedrawWindow

#8


还是回到原点:在Form里,如果窗体透明度Opaticy设为0%(透明),那么怎么样才能把上面的控件的透明度为100%(不透明)呢?

#9


搞定了:用不规则装体,把窗体背景搞成白色的,然后在设置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就可以设置成透明了。最终实现透明显示文字,而且想让它没它就没的效果。哈哈哈哈哈……

#10


我汗死....原来你要这样...为什么不早说................

#11


上次有人教我是用DrawString的,不错啊,可是出来了消不掉,确实麻烦。微软也不做好一点,加一条移除的命令。我在想如果以后要做桌面动画的,还得要消掉DrawString画出来的东西,所以这个题目还没有解掉!等待ing....

#12


顶一下,有高手再指点一下么?