PowerBuilder实现系统托盘程序详解

需积分: 35 2 下载量 194 浏览量 更新于2024-10-01 收藏 83KB PDF 举报
"本文档介绍了如何使用PowerBuilder编写系统托盘程序,使应用程序能在系统托盘区域运行,以便于管理和节省资源。通过调用Win32API函数来实现这一功能,包括获取应用程序路径、提取图标、添加和删除系统托盘图标等操作。文章详细阐述了在PowerBuilder中实现这一功能的4个阶段,并给出了相应的事件处理流程图。" 在Windows操作系统中,系统托盘区域通常位于任务栏的右侧,用于放置后台运行或暂时不使用的程序图标,这样可以保持桌面和任务栏的整洁。例如,QQ聊天软件在最小化后,其图标会出现在系统托盘,用户双击即可重新打开。 使用PowerBuilder编写系统托盘程序的关键在于利用Win32API函数,这些函数不在PowerBuilder的标准库中,因此需要进行外部声明。具体涉及的API函数包括: 1. **GetModuleFileNameA**:用于获取应用程序可执行文件的完整路径,这对于找到应用程序的图标至关重要。 2. **ExtractIconA**:提取可执行文件中的图标句柄,这个句柄将在系统托盘上使用。 3. **Shell_NotifyIconA**:这个函数负责在系统托盘添加或删除图标,以及处理与图标相关的用户交互。 4. **OpenIcon**:当用户点击图标时,使用此函数来打开或恢复应用程序窗口。 5. **DestroyIcon**:在程序关闭时,需要销毁不再使用的图标资源。 实现系统托盘功能的过程分为4个主要阶段: 1. **Open事件**:在程序启动时,调用上述API函数向系统托盘添加应用程序的图标。 2. **Resize事件**:当窗口被最小化(sizetype参数为1)时,隐藏窗口,只显示系统托盘图标。 3. **pbm_custom01事件**:处理自定义消息,特别是当鼠标左键双击图标(lparam参数为WM_LBUTTONDBLCLK)时,恢复窗口显示。 4. **Close事件**:在程序关闭时,从系统托盘删除应用程序的图标。 按照这个事件流程图,可以实现一个完整的系统托盘应用程序。程序的主窗口提供各种功能,当窗口最小化后,图标会出现在系统托盘,用户可以通过双击图标重新打开窗口。整个过程确保了程序的可用性和资源的有效管理。