没有合适的资源?快使用搜索试试~ 我知道了~
使用PB编写系统托盘程序
4星 · 超过85%的资源 需积分: 35 83 下载量 16 浏览量
2009-08-23
16:52:29
上传
评论
收藏 83KB PDF 举报
温馨提示
试读
2页
在 PowerBuilder 中应用 Win32 API 函数编写系统托盘程序, 将 PowerBuilder 应用程序最小化到系统托盘上, 显示为它的图标, 适用于暂时不使用或者暂时后台运行的情况
资源推荐
资源详情
资源评论
数据库及信息管理
本栏目责任编辑
:
闻翔军
1
引言
使用
Windows
操作系统的用户都知道任务栏和系统托盘
,
它
们位于桌面的正下方
,
其中依 次是开 始菜单
、
快速 启动栏
、
任务
栏
、
系统托盘
。
任务栏中显示的是用户正在使用的程序
、
文件
,
而
系统托盘的目的就是将暂时不使用或者暂时后台运行的程序最
小化到系统托盘上
,
显示为它的图标
,
从而节省计算机资源
,
并且
可以使得桌面
、
任务栏更加地简洁
,
在需要使用或者前台运行时
,
用鼠标左键双击在系统托盘上对应的图标
,
转换为当前使用或者
前台运行
。
就像我们常用的聊天工具
QQ
一样
,
当我们登录后
,
显示主面
板
,
当用鼠标左键单击上面的隐藏按钮
,
它将最小化到系统托盘
上
,
显示为企鹅图标
,
当用鼠标双击该图标
,
又显示主面板
。
2
设计
PowerBuilder
实现系统托盘功能需要应用
Win32 API
函数
,
获
取应用程序对应的可执行文件的路径
GetModuleFileNameA
;
提取
该可执行文件的图标的句柄
ExtractIconA
;
在系统托盘上添加
、
删除
该图标
Shell_NotifyIconA
;
打开该图标对应的应用程序窗口
OpenI-
con
;
销 毁 该 图 标
DestroyIcon
。
并 且 由 于
Win32 API
函 数 不 是
PowerBuilder
的内部函数
,
所以在使用它们之前必须加以外部声明
。
根据实现系统托盘功能的特点
,
可将其分成
4
个阶段
,
各自
控制应用程序窗口的显示
,
在
open
事件向系统托盘添加应用程
序窗口对应的图标
;
在
resize
事件定义窗口最小化时即当
sizetype
参数为
1
时
,
隐藏应 用程序 窗口
,
只显 示图标
;
在
pbm_custom01
事 件 定 义 鼠 标 左 键 双 击 图 标 的 响 应
,
当
lparam
参 数 为
WM_LBUTTONDBLCLK
时
,
恢复应用程序窗口的显示
;
在
close
事
件从系统托盘删除应用程序窗口对应的图标
。
下图
(
图
1
)
是按照
事件发生先后定义的事件流程图
。
图
1
按照事件发生先后定义的事件流程图
系统托盘达到的效果是如右图所示
,
其中右上图
(
图
2
)
是应
用程序的主窗口
,
它实现了很多的功能
,
是用户操作的界面
;
其中
右下图
(
图
3
)
是在窗口打开时
,
自动向系统托盘添加的窗口对应
的图标
,
当移动鼠标到该图标上
,
会出现提示
“
系统托盘程序
”。
当用鼠标左键单击窗口的最小化按钮
,
窗口将被隐藏
,
只显示托
盘上的图标
;
当用鼠标双击该图标
,
又显示该窗口
。
图
2
正常情况下的应用程序的主窗口
这样我们在暂时不使用应用程序或者暂时后台 运行应 用程
序时
,
就可以可以隐藏其主窗口
,
在需要使用或者前台运行时
,
再
显示其主窗口
。
图
3
系统托盘上应用程序的主窗口对应的图标
3
实现
3.1
声明本地外部函数
、
实例常量
、
NotifyIconData
结构
;
定义
实例变量
3.1.1
本地外部函数
function long GetModuleFileName (long hModule,ref string lp-
Filename,long nSize) library "kernel32" alias for "GetModuleFile-
NameA"
function long ExtractIcon(long hInst,string lpszExeFileName,long
nIconIndex) library "shell32" alias for "ExtractIconA"
function integer Shell_NotifyIcon (long dwMessage,any lpData)
library "shell32" alias for "Shell_NotifyIconA"
function long SetForegroundWindow(long hwnd) library "user32"
function long OpenIcon(long hwnd) library "user32"
function long DestroyIcon(long hIcon) library "user32"
3.1.2
实例常量
constant long NIM_ADD = 0 //
向系统托盘添加该图标
constant long NIM_DELETE = 2 //
从系统托盘删除该图标
constant long NIF_MESSAGEorNIF_ICONorNIF_TIP = 7 //
接收
消息
、
显示图标和提示
constant long WM_NULL = 0 //
空消息
收稿日期
:
2007- 03- 23
作者简介
:
周伟
(
1981-
) ,
男
,
助教
,
毕业于山东大学计算机科学与技术专业
,
在职研究生就读
,
从事软件研发
4
年
;
王丰
(
1980-
) ,
男
,
助教
,
毕
业于空军雷达学院计算机应用专业
,
在职研究生就读
,
从事网络工程
、
软件研发
6
年
。
使用
PowerBuilder
编写系统托盘程序
周伟
,
王丰
(
九江学院信息技术中心
,
江西 九江
332005
)
摘要
:
在
PowerBuilder
中应用
Win32 API
函数编写系统托盘程序
,
将
PowerBuilder
应用程序最小化到系统托盘上
,
显示为它的图标
,
适用于暂时不使用或者暂时后台运行的情况
。
关键词
:
PowerBuilder
;
系统托盘
;
Win32 API
中图分类号
:
TP311
文献标识码
:
A
文章编号
:
1009- 3044(2007)10- 20927- 02
Programming System Tray in PowerBuilder
ZHOU Wei,WANG Feng
(Information Technology Center , Jiujiang University , JiuJiang 332005, China)
Abstract:Programming System Tray in PowerBuilder using Win32 API function , minimizing the PowerBuilder application to the system
tray and displaying as its icon , which is useful for running temporarily or running temporarily in the background.
Key words:PowerBuilder; System Tray; Win32 API
927
资源评论
- WQSHYH2262014-01-05非常感谢共享,对我很有用
- ttyyll88112012-12-17复制的一篇论文,参考意义不大
- sdjnbw2017-03-21论文 意义不大
- qq_242025872015-11-02参考意义不大啊!
- dufff62016-03-25复制的一篇论文,参考意义不大
hkqp2008
- 粉丝: 3
- 资源: 15
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功