科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件作非常规程序菜单掌握delphi高级秘籍

作非常规程序菜单掌握delphi高级秘籍

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

大家可能见过诸如金山毒霸,瑞星杀毒,以及五笔输入法等等在系统托盘在的控制菜单……

作者:张磊 来源:yesky 2007年11月1日

关键字: 非常规程序 菜单 Delphi

  • 评论
  • 分享微博
  • 分享邮件
大家可能见过诸如金山毒霸,瑞星杀毒,以及五笔输入法等等在系统托盘(即右下角有时间和输入法图标的地方)在的控制菜单,而在正常的任务栏(即屏幕最下方的“开始”按钮的右边的各式各样)中却不出现按钮的程序,即我们常说的在后台运行的程序。如果自己的程序中也能有这样的话,那种与众不同的感觉真棒.

  预备知识:

  1:向系统托盘中加入图标控制菜单:

  向系统托盘中加入图标控制菜单须用到函数Shell_NotifyIconA,而这个函数又有两个参数:'TnotifyIconDataA'结构的参数和一个消息参数即:Shell_NotifyIconA(dwMessage:DWORD;lpData:PNotifyIconDataA),第一个参数dwMessage可以是以下值:NIM_ADD:增加一个图标 ;NIM_MODIFY:修改一个已有的图标 ;NIM_DELETE:删除一个已有的图标 ;

  第二个参数的TnotifyIconDataA结构如下:

TnotifyIconDataA=record

cbSize:DWORD; {表示该结构的长度}

Wnd:HWND; {是调用Shell_NotifyIconA函数的窗口的句柄即Handle}

iID:UINT; {是在下面的uCallbackMessage参数指定的消息中使用的一个自定义数值}

uFlags:UINT; {决定该结构中的有效部分,如有NIF_MESSAGE则 uCallbackMessage参数有 效 ;若有NIF_ICON 则hIcon有效;有 NIF_TIP则 szTip参数有效,当然你可 以让这三个参数都有效只须要在这个参数中写成NIF_MESSAGE+NIF_ICON+NIF_TIP即可}

uCallbackMessage:UNIT; {当添加的图标上有鼠标事件如右击等等时系统向Wnd参数所指定的窗口发 送消息,这个消息的Msg参数是uCallbackMessage,这个消息的wParam参数是 uID,这个消息的lParam参数是鼠标事件的 Msg值}

Icon:HICON; {是出现在系统托盘中的图标的句柄即handle}

szTip:array[0..63] of AnsiChar; {即delphi是常用的hint即当鼠标停留在托盘图标上时的提示,例如你可用 ‘这是我的第一个托盘图标菜单’}

end;
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章