Combo的气泡问题

jiangqiaohua 2009-01-03 01:22:51
网上下 了段气泡代码


'clsTooptip
'使用范例:
'Dim tooltip As New Class1
'Set tooltip.ParentControl = Text1 '气泡应用于哪个控件(要有Hwnd)
'tooltip.ToolTipTitle = "气泡标题" '气泡标题(不允许换行/字体粗体)
'tooltip.ToolTipText = "气泡内容" & vbCrLf & "123" '气泡内容(允许换行)
'tooltip.Create '创建气泡

Option Explicit

Private Declare Function DestroyWindow Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function CreateWindowEx Lib "user32" Alias "CreateWindowExA" (ByVal dwExStyle As Long, ByVal lpClassName As String, ByVal lpWindowName As String, ByVal dwStyle As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hWndParent As Long, ByVal hMenu As Long, ByVal hInstance As Long, lpParam As Any) As Long '创建窗口
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long '发出消息
Private Declare Function GetClientRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
Private Const WM_USER = &H400
Private Const CW_USEDEFAULT = &H80000000

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

Private Const TTS_NOPREFIX = &H2
Private Const TTF_TRANSPARENT = &H100
Private Const TTF_CENTERTIP = &H2
Private Const TTM_ADDTOOLA = (WM_USER + 4)
Private Const TTM_ACTIVATE = WM_USER + 1
Private Const TTM_UPDATETIPTEXTA = (WM_USER + 12)
Private Const TTM_SETMAXTIPWIDTH = (WM_USER + 24)
Private Const TTM_SETTITLE = (WM_USER + 32)
Private Const TTS_BALLOON = &H40
Private Const TTF_SUBCLASS = &H10
Private Const TOOLTIPS_CLASSA = "tooltips_class32"


不全贴了

试 了 下 command 和text都还挺好用



可发现 建立一个combo1却无法提示气泡

如何解决这个问题

'气泡应用于哪个控件(要有Hwnd)
combo1也是有 hwnd的
是不是因为combo1有 tooltiptext
...全文
95 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiangqiaohua 2009-01-06
  • 打赏
  • 举报
回复
combo1里面有个edit 我找不到
jiangqiaohua 2009-01-06
  • 打赏
  • 举报
回复
否则只在combo1的下拉箭头区域有效

的确是这样

'使用范例:
Dim tooltip As New Class1
Set tooltip.ParentControl = Me.Combo1 '气泡应用于哪个控件(要有Hwnd)
tooltip.ToolTipTitle = "气泡标题" '气泡标题(不允许换行/字体粗体)
tooltip.ToolTipText = "气泡内容" & vbCrLf & "123" '气泡内容(允许换行)
tooltip.Create '创建气泡


下拉箭头区域是有效的
如何让他在输入框里也有效?
jiangqiaohua 2009-01-06
  • 打赏
  • 举报
回复
还是不知道 怎么用 FindWindowEx 找edit
hpygzhx520 2009-01-06
  • 打赏
  • 举报
回复
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
hpygzhx520 2009-01-06
  • 打赏
  • 举报
回复
这个不会的话可以搜索
Dim CBHwnd As Long
CBHwnd = FindWindowEx(combo1.hwnd, ByVal 0&, "edit", vbNullString)
hpygzhx520 2009-01-05
  • 打赏
  • 举报
回复
因为combo1里面有个edit,你可以用edit的hwnd。否则只在combo1的下拉箭头区域有效
jiangqiaohua 2009-01-03
  • 打赏
  • 举报
回复
没人知道吗

1,488

社区成员

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

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