[分享]UNICODE版的操作系统任务栏通告操作控件
下载地址: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_baselm_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,敬请及时告知。
------其他解决方案--------------------
再问一下,如何装载你的DLL(MY_BALLOONTIP.dll)函数呢?
好像只有使用方法,难道还要调用shell32.dll的Shell_NotifyIcon函数吗?
[其他解释]
导入方法:
在PB9中:
PB9中复制一点,先将my_balloontip.dll改名为my_balloontip.pbx,只要扩展名是.pdx,文件名为何无所谓。然后用pbx2pbd90.exe将该文件生成.pbd文件,然后就可以当成.pbl文件操作了。
在PB10或以上版本中:
在PB10以上的版本中很简单,先决定好要把控件放在哪个库文件中,然后在编程环境的系统树(System Tree)视窗中,右击该库,在弹出菜单中选"Import PB Extension...",导入dll或者pbx文件,即可。
[其他解释]
还是不会用啊