DrawText哪里错用了啊

whupyf 2003-05-10 10:14:32
VB 6.0里
声明:
Private Declare Function DrawText Lib "user32" Alias "DrawTextA" (ByVal hdc As Long, ByVal lpStr As String, ByVal nCount As Long, lpRect As RECT, ByVal wFormat As Long) As Long


DrawText vbNull, windowhandle, b, d, RECT1, "DT_LEFT"

b是字符串 string
d应该大于等于b的长度,long型的.

可是运行时说ByRef arguement type missmatch

可是声明里说是长型啊,而且是直接引用啊
...全文
105 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
whupyf 2003-05-11
  • 打赏
  • 举报
回复
55555555555.

问题解决.
danielinbiti 2003-05-10
  • 打赏
  • 举报
回复
申明没错,调用多了个参数
用户 昵称 2003-05-10
  • 打赏
  • 举报
回复
Option Explicit

Private Const DT_CENTER = &H1
Private Const DT_VCENTER = &H4
Private Const DT_SINGLELINE = &H20
Private Type POINTAPI
x As Long
y As Long
End Type
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As Long) As Long
Private Declare Function DrawText Lib "user32" Alias "DrawTextA" (ByVal hdc As Long, ByVal lpStr As String, ByVal nCount As Long, lpRect As RECT, ByVal wFormat As Long) As Long
Private Declare Function ScreenToClient Lib "user32" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long
Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long

Private Sub Command1_Click()
Dim dc As Long
dc = GetDC(Me.hwnd)
Dim r As RECT
GetWindowRect Me.hwnd, r
MyScreenToClient Me.hwnd, r
DrawText dc, "admin", Len("admin"), r, DT_CENTER Or DT_VCENTER Or DT_SINGLELINE
ReleaseDC Me.hwnd, dc
End Sub

Private Sub MyScreenToClient(h As Long, r As RECT)
Dim p As POINTAPI
p.x = r.Left
p.y = r.Top
ScreenToClient h, p
r.Left = p.x
r.Top = p.y
p.x = r.Right
p.y = r.Bottom
ScreenToClient h, p
r.Right = p.x
r.Bottom = p.y
End Sub
whupyf 2003-05-10
  • 打赏
  • 举报
回复
DrawText windowhandle, b, d, RECT1, "DT_LEFT"
仍然有问题
错误13:类型不匹配.

估计是RECT1的错误

Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type

Private RECT1 As RECT

哪里有问题啊?
TechnoFantasy 2003-05-10
  • 打赏
  • 举报
回复
你调用有错误,函数的参数是5个,而你的调用中传递了6各参数,里面的vbNull甚么意思啊?

1,486

社区成员

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

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