请问各位高手,如何在任意屏幕上打字 画线 画圈?包括正在播放的视频界面上?
这个问题很重要,在下可以给300分,只要答案正确就可以。
另外请低手不要急于抢答,这个问题不简单。我要求的是任意屏幕,
我想做的软件是这样的,显示当前时间在任何屏幕的前面,打成指针
或者时间都可以,但是要透明,要直接绘制。即使是全屏播放的视频
也不能挡住我,如果能半透明就更好了。请高手赐教。
值得注意的是,我还不能做一个窗口镂空了显示在前面,因为我不想
挡住后面程序的按键的正常操作。这个显示要像显示器的调节菜单一样
非常自然,没有拖拉和屏幕重绘的痕迹。
[解决办法]
窗口镂空了显示在前面是可以的,SetWindowLayerAttribute这个函数能让窗体鼠标穿透,至于怎么用,你google一下把,很简单的
[解决办法]
Const LWA_COLORKEY = &H1
Const LWA_ALPHA = &H2
Const GWL_EXSTYLE = (-20)
Const WS_EX_LAYERED = &H80000
Const WS_EX_TRANSPARENT As Long = &H20&
Private Declare Function GetWindowLong Lib "user32 " Alias "GetWindowLongA " (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32 " Alias "SetWindowLongA " (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function SetLayeredWindowAttributes Lib "user32 " (ByVal hWnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
rem 可以把窗体设计我无边框的,自己设计关闭按钮
Private Sub Form_Load()
Dim lRet As Long
lRet = GetWindowLong(Me.hWnd, GWL_EXSTYLE)
lRet = Ret Or WS_EX_LAYERED Or WS_EX_TRANSPARENT
SetWindowLong Me.hWnd, GWL_EXSTYLE, lRet
SetLayeredWindowAttributes Me.hWnd, 0, 200, LWA_ALPHA
End Sub
[解决办法]
vb实现鼠标穿透
http://faq.xunweb.org/itfaq/vb2/2006-06-04/5749.html