大哥~有没有函数可以将字符直接输出到桌面

lq__222 2007-04-21 12:53:08
有没有函数可以将字符直接输出到桌面
...全文
287 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lq__222 2007-04-22
  • 打赏
  • 举报
回复
能不能以透明的方式显示呢???
zzyong00 2007-04-22
  • 打赏
  • 举报
回复
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
zdingyun 2007-04-22
  • 打赏
  • 举报
回复
鱼和熊掌不可兼得.
清晨曦月 2007-04-21
  • 打赏
  • 举报
回复
呵呵.....是啊..如果是桌面窗体,也就是一般窗体他爹,那获取句柄后直接用DRAW一类的API画上去就好了吧....
rainstormmaster 2007-04-21
  • 打赏
  • 举报
回复
楼主的"桌面"指的是什么
熊孩子开学喽 2007-04-21
  • 打赏
  • 举报
回复
程序运行后自动 输出的例子:
添加一个模块,移除原来的窗体,粘贴一下代码
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


就这样了
熊孩子开学喽 2007-04-21
  • 打赏
  • 举报
回复
运行后直接输入的例子:
添加一个模块,移除窗体,粘贴一下代码
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

熊孩子开学喽 2007-04-21
  • 打赏
  • 举报
回复
运行后直接输入的例子:
添加一个模块,移除窗体,粘贴一下代码
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

zdingyun 2007-04-21
  • 打赏
  • 举报
回复
根据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

1,488

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧