顺
顺顺
Unregistered / Unconfirmed
GUEST, unregistred user!
这样设想:
在桌面上显示一行或者几行文字.文字背景透明.并且点击文字能触发相应事件.
在Win + D <显示桌面>的时候依然可见.并且不影响桌面图标的操作.
现在我有两个想法:
1.在Form里放一个lable.让Form Windows.SetParent(FrmMain.Handle, FindWindow(nil,'Program Manager')); 在lable的事件里作操作.
这样子有几个问题:
a.如果设置Form的AlphaBlend=true, AlphaBlendValue=0,则Label也消失不见.
b.用重画From的方法,label 的Transparent = true, 则label的背景色(透明后的)不是桌面的透明,而是Form的Color.(Label.parentColor).
c.查了一下.Lable没有THandle原因是TLabel不是TWinControl(button是TWinControl),所以不能SetParent到桌面...
2.用TextOUt直接输出,然后Hook MOuse 的事件,如果Mouse的x,y在 TextOut文字的范围内,触发相应事件.TextOUt的输出设bsClear后,可以透明桌面.
但这个方法在桌面刷新的时候就会消失,而且效果不好掌握.
本人不善于表达,可能问题表述得不是很清楚.
希望有兄弟能帮忙.分不多..见谅
在桌面上显示一行或者几行文字.文字背景透明.并且点击文字能触发相应事件.
在Win + D <显示桌面>的时候依然可见.并且不影响桌面图标的操作.
现在我有两个想法:
1.在Form里放一个lable.让Form Windows.SetParent(FrmMain.Handle, FindWindow(nil,'Program Manager')); 在lable的事件里作操作.
这样子有几个问题:
a.如果设置Form的AlphaBlend=true, AlphaBlendValue=0,则Label也消失不见.
b.用重画From的方法,label 的Transparent = true, 则label的背景色(透明后的)不是桌面的透明,而是Form的Color.(Label.parentColor).
c.查了一下.Lable没有THandle原因是TLabel不是TWinControl(button是TWinControl),所以不能SetParent到桌面...
2.用TextOUt直接输出,然后Hook MOuse 的事件,如果Mouse的x,y在 TextOut文字的范围内,触发相应事件.TextOUt的输出设bsClear后,可以透明桌面.
但这个方法在桌面刷新的时候就会消失,而且效果不好掌握.
本人不善于表达,可能问题表述得不是很清楚.
希望有兄弟能帮忙.分不多..见谅