下载地址:http://download.csdn.net/source/1293723
------最佳解决方案--------------------
感谢分享!支持一下
------其他解决方案--------------------
支持一下
------其他解决方案--------------------
谢谢LZ这么晚还在回复!
按你的方法,确实可以导入。
------其他解决方案--------------------
示例图:
------其他解决方案--------------------
已经下载了,只有一个DLL 楼主最好把函数说明附上
------其他解决方案--------------------
这是用PBNI编写的控件,VC6的IDE,VC2003的编译器编译,UNICODE版本。
三个函数的使用说明:
of_addtip(unsignedlong winhandle, string tip)
添加一个tip。这是必须首先调用的函数,即:在使用其他两个函数前,必须先调用此函数。
winhandle:窗口句柄,操作tip的窗口的句柄,tip的图标即用此窗口的图标。
tip: tip的字符内容。
of_modifytip(string title, string info)
修改tip的内容,并且动态将修改的内容立即显示。参数的含义明显。
of_deletetip()
删除tip.
对tip图标上的鼠标操作的处理:
原理是:图标上的所有windows消息,都会转发到参数winhandle所代表的窗口,作为该窗口的WM_USER消息,即触发该窗口的pbm_custom01事件。pbm_custom01事件的lparm参数指定tip图标的windows消息号。
具体作法:在参数winhandle所代表的窗口的pbm_custom01事件中写代码,检测lparm的值,以判断鼠标进行了哪种操作,如:lparm为517(WM_RBUTTONUP),表示鼠标弹起。
pbm_custom01中的示例代码:
CONSTANT long WM_MOUSEMOVE = 512
CONSTANT long WM_LBUTTONDOWN = 513
CONSTANT long WM_LBUTTONUP = 514
CONSTANT long WM_LBUTTONDBLCLK = 515
CONSTANT long WM_RBUTTONDOWN = 516
CONSTANT long WM_RBUTTONUP = 517
CONSTANT long WM_RBUTTONDBLCLK = 518
CONSTANT long WM_USER = 1024
CONSTANT long NIN_BALLOONSHOW =(WM_USER + 2)
CONSTANT long NIN_BALLOONHIDE =(WM_USER + 3)
CONSTANT long NIN_BALLOONTIMEOUT =(WM_USER + 4)
CONSTANT long NIN_BALLOONUSERCLICK =(WM_USER + 5)
m_base lm_menu
CHOOSE CASE lparam
CASE WM_MOUSEMOVE
//
CASE WM_LBUTTONDOWN
//鼠标左键按下
CASE WM_LBUTTONUP
//鼠标左键弹起
CASE WM_LBUTTONDBLCLK
//鼠标左键双击
CASE WM_RBUTTONDOWN //
SetFocus ( this )
lm_menu = CREATE m_base
lm_menu.PopMenu(PointerX(),PointerY())
DESTROY lm_menu
CASE WM_RBUTTONUP
//
CASE WM_RBUTTONDBLCLK
//
CASE NIN_BALLOONSHOW
//
CASE NIN_BALLOONHIDE
//
CASE NIN_BALLOONTIMEOUT
//
CASE NIN_BALLOONUSERCLICK
//
CASE ELSE
Beep(0)
END CHOOSE
鼠标右键按下图标的效果示例:
注意事项:
经测试,本PBNI如果与其他非UNICODE版的PBNI同用时,会显示乱码。无解。
如有BUG,敬请及时告知。
------其他解决方案--------------------