Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function SetBkMode Lib "gdi32" (ByVal hdc As Long, ByVal nBkMode As Long) As Long
Private Declare Function TextOut Lib "gdi32.dll" Alias "TextOutA" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal lpString As String, ByVal nCount As Long) As Long
Private Const TRANSPARENT = 1
Private Sub Timer1_Timer()
Dim hwnd As Long
hwnd = GetDC(0)
SetBkMode hwnd, TRANSPARENT '设置透明
TextOut hwnd, 550, 150, "桌面写字测试~~", 14 '写字
DoEvents
End Sub
可以透明输送到桌面,但要注意Timer interval
程序运行后自动 输出的例子:
添加一个模块,移除原来的窗体,粘贴一下代码
Private Declare Function TextOut Lib "gdi32" Alias "TextOutA" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal lpString As String, ByVal nCount As Long) As Long
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Sub main()
TextOut GetDC(0), 100, 100, "hell world", 10
End Sub
手动输出例子:
新建窗体,放个按钮,粘贴一下代码:
Private Declare Function TextOut Lib "gdi32" Alias "TextOutA" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal lpString As String, ByVal nCount As Long) As Long
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Sub Command1_Click()
TextOut GetDC(0), 100, 100, "hell world", 10
End Sub
运行后直接输入的例子:
添加一个模块,移除窗体,粘贴一下代码
Private Declare Function TextOut Lib "gdi32" Alias "TextOutA" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal lpString As String, ByVal nCount As Long) As Long
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Sub main()
TextOut GetDC(0), 100, 100, "hell world", 10
End Sub
手动输出的例子:
新建窗体,放个按钮:
Private Declare Function TextOut Lib "gdi32" Alias "TextOutA" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal lpString As String, ByVal nCount As Long) As Long
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Sub Command1_Click()
TextOut GetDC(0), 100, 100, "hell world", 10
End Sub
运行后直接输入的例子:
添加一个模块,移除窗体,粘贴一下代码
Private Declare Function TextOut Lib "gdi32" Alias "TextOutA" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal lpString As String, ByVal nCount As Long) As Long
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Sub main()
TextOut GetDC(0), 100, 100, "hell world", 10
End Sub
手动输出的例子:
新建窗体,放个按钮:
Private Declare Function TextOut Lib "gdi32" Alias "TextOutA" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal lpString As String, ByVal nCount As Long) As Long
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Sub Command1_Click()
TextOut GetDC(0), 100, 100, "hell world", 10
End Sub
根据zzyong00(阿勇)提供的代码改动:
Option Explicit
' 在Form的声明部分加上以下代码:
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 SetParent Lib "user32" (ByVal hWndChild _
As Long, ByVal hWndNewParent As Long) As Long
Const WS_EX_TRANSPARENT = &H20&
Const GWL_EXSTYLE = (-20)
Private Declare Function GetDesktopWindow Lib "user32.dll" () As Long
Private Declare Function GetWindowDC Lib "user32.dll" (ByVal hwnd As Long) As Long
'Private Declare Function DrawText Lib "user32.dll" Alias "DrawTextA" (ByVal hdc As Long, ByVal lpStr As String, ByVal nCount As Long, ByRef lpRect As RECT, ByVal wFormat As Long) As Long
Private Declare Function TextOut Lib "gdi32.dll" Alias "TextOutA" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal lpString As String, ByVal nCount As Long) As Long
'Private Type RECT
' Left As Long
' Top As Long
' Right As Long
' Bottom As Long
'End Type
Private Sub Form_Click()
End
End Sub
Private Sub Form_Load()
SetWindowLong hwnd, GWL_EXSTYLE, WS_EX_TRANSPARENT
Timer1.Interval = 1000
End Sub
Private Sub Timer1_Timer()
Dim h As Long, hd As Long, ret As Long
h = GetDesktopWindow
hd = GetWindowDC(h)
Dim c As String
c = "有没有函数可以将字符直接输出到桌面"
ret = TextOut(hd, 280, 280, c, 34)
Timer1.Enabled = False
End Sub