如何控制Textout函数输出的文字的背景(Vista) ( 积分: 30 )

  • 主题发起人 主题发起人 sy0116
  • 开始时间 开始时间
S

sy0116

Unregistered / Unconfirmed
GUEST, unregistred user!
我用以下代码来实现在屏幕上输出文字的功能,但文字的背景是白色的,要怎样才能使背景透明呢?<br>var<br>hScreenDC:HDC;<br>SystemTime:&nbsp;_SYSTEMTIME;<br>Temp:&nbsp;string;<br>MyOutput:&nbsp;PChar;<br>hfont:Cardinal;<br>begin<br>//&nbsp;while&nbsp;true&nbsp;do<br>begin<br>hFont:=CreateFont(170,90,0,0,8,0,0,0,DEFAULT_CHARSET,OUT_TT_PRECIS,CLIP_TT_ALWAYS,<br>PROOF_QUALITY&nbsp;,DEFAULT_PITCH,'楷体');<br>hScreenDC&nbsp;:=&nbsp;GetDC(0);<br>SelectObject(hScreenDC,&nbsp;hfont);<br>//SetBKMode(hScreenDC,TRANSPARENT);加上这一句后在XP下实现了背景透明,但在Vista下无效,在XP下编译后再拿到Vista下显示一个黑块<br>TextOut(hScreenDC,&nbsp;0,0,&nbsp;'sdgagfdagfdg',12);<br>ReleaseDC(0,&nbsp;hScreenDC);<br>DeleteObject(hFont)<br>end;<br><br>end;
 
Vista下编译的程序在XP下使用正常,但是发现一个问题:在XP下程序输出的文字所在的位置上如果在文字输出前就有一个窗口在那里的话,输出文字之后如果移动这个窗体的话那么文字会跟着移动,而且如果刷新桌面的话这些文字不会消失(如果在桌面上也有一部分文字那么在桌面上的那一部分会消失),只有刷新这个窗口文字才会消失,而在Vista下就算有一个窗口在那里移动窗口时文字还是在原来的位置,只不过在窗体内的那一部分会消失,而且刷新桌面也会使文字消失
 
呵呵,老兄果然比较提前,只不过DELPHI7好像在VISTA装不了,你用DotNet试试呢?
 
装不上?我怎么一下就装上了,而且没有出现以前说的用delphi写的&nbsp;程序再用Win+Tab切换时不能正常显示的问题
 
关掉Aero效果后竟然就正常了,莫非是BUG
 
都用上VISTA了啊,用的是D7?好用吗?
 
用的是D7,到遇到这个问题前还一切正常,没有出现以前所说在用win+tab切换时会出现显示不正常的问题&nbsp;,对vista风格的界面支持也很好,这个问题应该不是delphi的问题吧,用的是api啊<br>在vista下编译的程序在XP下使用正常
 
我测试Delphi5,6,7,2005,2006都能在Vista上安装.没安装成功主要还是权限问题
 
多人接受答案了。
 
后退
顶部