当前位置: 代码迷 >> PB >> [分享]UNICODE版的操作系统任务栏布告操作控件
  详细解决方案

[分享]UNICODE版的操作系统任务栏布告操作控件

热度:101   发布时间:2016-04-29 07:58:57.0
[分享]UNICODE版的操作系统任务栏通告操作控件
下载地址:http://download.csdn.net/source/1293723
------最佳解决方案--------------------
感谢分享!支持一下
------其他解决方案--------------------
支持一下
------其他解决方案--------------------
引用:
导入方法: 

在PB9中: 
    PB9中复制一点,先将my_balloontip.dll改名为my_balloontip.pbx,只要扩展名是.pdx,文件名为何无所谓。然后用pbx2pbd90.exe将该文件生成.pbd文件,然后就可以当成.pbl文件操作了。 

在PB10或以上版本中: 
    在PB10以上的版本中很简单,先决定好要把控件放在哪个库文件中,然后在编程环境的系统树(System Tree)视窗中,右击该库,在弹出菜单中选"Import PB Extension...",导入dll或者p…


谢谢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,敬请及时告知。

------其他解决方案--------------------
  相关解决方案