紫水晶编程技术论坛 - 努力打造成全国最好的编程论坛

 找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 4174|回复: 0

[开源] 用API在VFP下直接建立的提示标签_在鼠标的x y坐标显示提示信息

[复制链接]

1214

主题

1566

帖子

11

精华

管理员

菜鸟

Rank: 125Rank: 125Rank: 125Rank: 125Rank: 125

积分
93743

贡献奖关注奖人气王精英奖乐于助人勋章

发表于 2011-1-5 20:42:37 | 显示全部楼层 |阅读模式
  1. ?Show_Tips('提示标签测试','这个是一个用API在VFP下直接建立的提示标签!','3000')  
  2. ********************************
  3. *!*        原程序来至行者
  4. *!*        修改:自由的风
  5. *!*        原程序地址:http://hi.baidu.com/myvfp/blog/item/21434a00eb66c403738b651d.html
  6. ********************************
  7. Function Show_Tips
  8.         Lparameters toTitle,TipStr,cTime  &&提示标题,提示内容,显示时间
  9.         Declare Integer CreateWindowEx In user32 Integer,String,String,Integer,Integer,Integer,;
  10.                 INTEGER,Integer,Integer,Integer,Integer,Integer
  11.         Declare Integer SendMessage In user32 Integer,Integer,Integer,String @
  12.         Declare Integer SendMessage In user32 As SendMessageLong Integer,Integer,Integer,Integer
  13.         Declare Integer GetWindowLong In user32 Integer,Integer
  14.         Declare Integer DestroyWindow In user32 Integer HWnd
  15.         Declare Integer StrDup In shlwapi String @
  16.         Declare Sleep In kernel32 Integer dwMilliseconds
  17.         Declare SHORT GetCursorPos In user32 String @
  18.         WM_USER = 0x400
  19.         TTS_NOPREFIX = 0x2
  20.         TTF_TRANSPARENT = 0x100
  21.         TTM_ADDTOOLA = (WM_USER + 4)
  22.         TTM_ACTIVATE = WM_USER + 1
  23.         TTM_SETTITLE = (WM_USER + 32)
  24.         TTS_BALLOON = 0x40
  25.         TTS_ALWAYSTIP = 0x1
  26.         TTF_SUBCLASS = 0x10
  27.         TTF_IDISHWND = 0x1
  28.         TTS_CLOSE=0x80
  29.         TTM_TRACKPOSITION = WM_USER + 18
  30.         TTM_TRACKACTIVATE=WM_USER + 17
  31.         TTM_SETTITLEA=(WM_USER+32)
  32.         TTF_TRACK =0x20
  33.         Orientation=0&&调整箭头方向,0朝上,1朝下
  34.         TOOLTIPS_CLASSA = "tooltips_class32"
  35.         hParentHWnd=0
  36.         hInstance=GetWindowLong(hParentHWnd,-6)
  37.         TipStrhMem= StrDup(@TipStr)
  38.         mSize=BinToC(44,'4rs')
  39.         If Orientation=0
  40.                 mFlags=BinToC(Bitor(TTF_IDISHWND,TTF_TRANSPARENT,TTF_TRACK),'4rs')
  41.         Else
  42.                 mFlags=BinToC(TTF_IDISHWND+TTF_TRANSPARENT+TTF_SUBCLASS,'4rs')
  43.         Endif
  44.         mhwnd=BinToC(hParentHWnd,'4rs')
  45.         mId=BinToC(hParentHWnd,'4rs')
  46.         mRect=Replicate(0h00000000,4)
  47.         mInstance=BinToC(hInstance,'4rs')
  48.         mStr=BinToC(TipStrhMem,'4rs')
  49.         mlParam=BinToC(0,'4rs')
  50.         TIPINFO=mSize+mFlags+mhwnd+mId+mRect+mInstance+mStr+mlParam
  51.         lnStyle=TTF_IDISHWND+TTF_TRANSPARENT+TTF_TRACK+TTS_BALLOON+TTS_CLOSE
  52.         lTTHwnd=CreateWindowEx(0,TOOLTIPS_CLASSA,Null,lnStyle,0,0,0,0,0,0,0,0)
  53.         SendMessage(lTTHwnd,TTM_ADDTOOLA,0,@TIPINFO)
  54.         SendMessage(lTTHwnd,TTM_SETTITLEA,1,@toTitle)
  55.         If Orientation=0
  56.                 POINTAPI=Replicate(Chr(0),8)
  57.                 GetCursorPos(@POINTAPI)
  58.                 x=CToBin(Substr(POINTAPI,1,4),'4rs')
  59.                 Y=CToBin(Substr(POINTAPI,5,4),'4rs')
  60.                 SendMessageLong(lTTHwnd,TTM_TRACKPOSITION,0,Bitlshift(Y-15,16)+X-5)
  61.                 SendMessage(lTTHwnd, TTM_TRACKACTIVATE,1,@TIPINFO)
  62.         Endif
  63.         If Val(Alltrim(cTime))>0
  64.                 Sleep(Val(cTime))
  65.                 If lTTHwnd>0
  66.                         DestroyWindow(lTTHwnd)
  67.                 Endif
  68.         Endif
  69. Endfunc
复制代码
【VB】QQ群:1422505加的请打上VB好友
【易语言】QQ群:9531809  或 177048
【FOXPRO】QQ群:6580324  或 33659603
【C/C++/VC】QQ群:3777552
【NiceBasic】QQ群:3703755
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

手机版|Archiver|紫水晶工作室 ( 粤ICP备05020336号 )

GMT+8, 2024-4-29 00:54 , Processed in 0.022247 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表