在PowerBuilder中创建图标栏应用

转载 2012年03月31日 11:11:04

在PowerBuilder中创建图标栏应用

(加入日期:2001-4-25)

保存文章至硬盘】【打印文章】【字体:

分享到: 0
国防科技大学理学院 陈玉教
邮编: 410073

---- 在一些应用埸合,常需要在Windows 9.X或Winnt中的图标栏中显示出公司/应用程序的图标,在单击图标时弹出相应的窗口,就象金山词霸一样。下面介绍采用PowerBuilder中在Windows 9.x和Windows NT下显示图标栏图标的方法。

一、 建立一个应用程序
---- 在创建程序前,先准备一个用于在图标栏中显示的图标文件(.ICO),并准备一个用于弹出窗口显示的图片(BMP 256色)。启动PowerBuilder,创建一个应用(Application),取应用名Starsoft(任意),注意采用模板生成却缺省窗口。
二、 创建要显示的图标窗口
---- 创建一个用于显示成图标的窗口,取名为W_systray,再在上面放置一张BMP图片,式样如下图所示(略)
---- 设置其它窗口的有关信息,如窗口名等。

三、 编程
---- 1、定义全局外部函数
---- PowerBuilder本身并不提供用于在图标栏中把窗口显示成图标的函数,但可以通过Windows API调用来实现,有关在PowerBuilder调用相应的API函数如下(定义在全局外部函数中):

Public Function Integer Shell_NotifyIcon
(Long dwMessage, Any lpData) Library "shell32"
Alias For "Shell_NotifyIconA"
Public Function Long LoadImage (Long hInst,
String lpsz, Long un1, Long n1, Long n2, Long un2)
Library "user32" Alias  For "LoadImageA"
Public Function Long DestroyIcon (Long hIcon)
Library "user32" Alias For "DestroyIcon"
Public Function Long SetForegroundWindow (Long hwnd)
Library "user32" Alias For "SetForegroundWindow"
Public Function Long OpenIcon  (Long hwnd)
Library "user32" Alias For "OpenIcon"

---- 2、应用入口
---- 在Application的Open Scripts中,输入下列函数:

---- Open (win_systray)

---- 3、窗口函数和Scripts

---- 在W_systray窗口中,创建一个名称为notifyicondata的结构,定义如下:项目 数据类型

Cbsize Long
Hwnd Long
Uid Long
Uflags Long
Ucallbackmessage Long
Hicon Long
Sztip any

---- 再定义三个函数:
---- 1、AddToTray(),参数:无;返回值:布尔值(True/False)

// Boolean AddToTray ()
Any nid
if hIcon = 0 then
// the icon has not been loaded yet
hIcon = LoadImage(0, "SysTray.ico",
IMAGE_ICON, 0, 0, LR_LOADFROMFILE)
end if

if hIcon = 0 then
MessageBox ("错误", "不能加载图标!")
Return False
else
nid = SetNotifyIconData (Handle (This), 0,
NIF_MESSAGEorNIF_ICONorNIF_TIP, WM_MOUSEMOVE,
hIcon, "TestTip")
Shell_NotifyIcon (NIM_ADD, nid)

Return True
end if

---- 2、RemoveFromTray ();参数:无;返回值:无
// RemoveFromTray ()
Any nid
nid = SetNotifyIconData (Handle (This), 0,
NIF_MESSAGEorNIF_ICONorNIF_TIP, 0, hIcon, "")
Shell_NotifyIcon (NIM_DELETE, nid)
if hIcon < > 0 then DestroyIcon (hIcon)
hIcon = 0

---- 3、SetNotifyIconData (Long hWnd, Long ID, Long Flags,
Long CallbackMessage, Long Icon, String Tip);
返回值:notifyicondata
// NotifyIconData SetNotifyIconData (Long hWnd, Long ID,
Long Flags, Long CallbackMessage, Long Icon, String Tip)
Char MyTip [64]
NotifyIconData NidTemp
NidTemp.cbSize = 88 // Len (NidTemp)
NidTemp.hWnd = hWnd
NidTemp.uID = ID
NidTemp.uFlags = Flags
NidTemp.uCallbackMessage = CallbackMessage
NidTemp.hIcon = Icon
MyTip = Tip + Char (0)
NidTemp.szTip = MyTip
return NidTemp
最后,在窗口的有关事件中输入函数:
Open 事件
if AddToTray () then Visible = False
Close 事件
RemoveFromTray ()
CloseQuery 事件
if CanClose then
Return 0
else
Visible = False
Return 0
End if
Resize事件
if sizetype = 1 then Visible = False

四、 测试
---- 完成上述工作后,就可以运行并加以测试了。进入运行,在图标栏中就注册了一个图标,单击就弹出窗口,窗口示例如下图所示(略):
---- 这时,最小化该窗口,不会在Windows 9.x或Windows NT的任务栏中显示,而是缩小成一个在图标栏中的图标。

---- 上述示例在Windows 9.8、Windows NT V4.0和PowerBuilder 6.5下测试通过。 

相关文章推荐

PowerBuilder制作IE风格的图标按钮

PowerBuilder制作IE风格的图标按钮 (加入日期:2001-9-9) 【保存文章至硬盘】【打印文章】【字体:大 中 小】 分享到: 0 ---- 本文介绍在PowerBui...

用Powerbuilder进行分布式应用开发三级体系结构

我们一般所开发的数据库应用是基于Client/Server结构的,是两层体系结构。  1、 第一层是客户端的界面和逻辑计算,用PowerBuilder 开发出的应用主要是第一层,运行于客户端。  ...

pbfunc外部函数扩展应用-在Powerbuilder中进行Http的GET、POST操作

利用PBFunc扩展函数进行Http的操作时,需要对n_pbfunc_http的以下几个函数进行参数设置: of_set_URL(...)//要进行GET或POST的url,必须 of_set_Co...
  • my_aa
  • my_aa
  • 2015-10-25 08:21
  • 1324

PowerBuilder7.0在Internet中的应用

PowerBuilder7.0在Internet中的应用 (加入日期:2001-6-11) 【保存文章至硬盘】【打印文章】【字体:大中 小】 分享到: 0 随着Internet /I...

采用Sybase、PowerBuilder、Notes构建B/S应用系统

采用Sybase、PowerBuilder、Notes构建B/S应用系统 (加入日期:2001-4-25) 【保存文章至硬盘】【打印文章】【字体:大中 小】 分享到: 0 华中理工大...

用Powerbuilder进行分布式应用开发三级体系结构

用Powerbuilder进行分布式应用开发三级体系结构 (加入日期:2001-6-20) 【保存文章至硬盘】【打印文章】【字体:大中 小】 分享到: 0 我们一般所开发的数据库应用...

PowerBuilder应用程序中的按钮设计

PowerBuilder作为开发数据库应用的工具,因为使用其开发方便、快捷并且实现的系统功能强大而深得程序员们的喜爱,我们可以看到越来越多优秀的数据库系统里出现它的身影。但是,随着用户界面设计的重要性...

PowerBuilder 12使.NET的应用开发更快捷

“多年以来,Sybase PowerBuilder 一直是应用开发领域的领军产品,它将大数据量的开发与高效的图形用户界面(GUI)相结合,为企业的各种应用提供全方位的服务,” IDC应用开发软件研究项...

【PB】如何发布独立的POWERBUILDER应用

如何发布独立的POWERBUILDER应用  摘要:本文介绍了发布独立的POWERBUILDER应用所需要的驱动程序以及相关设置,特别介绍使用Powersoft的本地数据库产品SQL Anywh...

Java桌面应用程序创建系统托盘图标

/* *Created on 2016年12月8日 *Copyright 2016 Yong Cai Limited crop. All Rights Reserved * *72896**80@qq...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)