说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

用Visual Basic编写托盘程序

HTML文档下载 WORD文档下载 PDF文档下载
用Visual Basic编写托盘程序



  在WINDOWS98里,右下角有许多应用程序的图标。而程序本身的窗口是隐藏的,若你需要调用应用程序的窗口,则双击该图标即可。这种程序称为托盘程序。这是WINDOWS98操作系统的一大特色。使用户能够更加快捷的显示和隐藏应用程序,可以使任务栏不致于太乱。托盘程序在Visual Basic里是怎么实现的呢?
    编写托盘程序主要解决两个问题:(1)创建、修改、删除托盘;(2)如何对托盘接收到的消息进行处理。这就要用到几个Windows API函数。
    首先,Shell_NotifyIcon是用于托盘的Shell API。该API用到一个NOTIFYICONDATA结构.
  Type NOTIFYICONDATA
    cbSize As Long '该结构所占字节数
    hwnd As Long '接收托盘图标消息的窗口指针
    uID As Long '由程序定义的图标识别符,因为有的程序有多个图标
    uFlags As Long '对托盘图标操作的标志,包括添加、删除、修改
    uCallbackMessage As Long '标志应用程序的消息
    hIcon As Long '托盘图标指针
    szTip As String * 64 '当鼠标指到托盘图标时提示字符串
  End Type
    其次,应该考虑怎样在VB中接收、处理托盘的消息(双击、单击、左键、右键)。C++、Delphi等语言对消息循环的处理较简单,但在VB中处理消息循环时必须应用Win32的SetWindowLong、CallWindowProc这两个API函数。SetWindowLong 函数利用GWL_WNDPROC 索引来创建窗口类的子类(窗口类是用来创建窗口的),它使用AddressOf关键字和回调函数(WindowProc)来截取消息并根据消息来执行相应的功能,如窗口的最大化、最小化、隐藏、退出等。CallWindowProc函数调用原窗口类缺省的指针,程序最后退出时可通过SetWindowLong来关闭子类,重新使原来的Windows过程成为回调函数。
    本程序项目包括一个模块和一个窗体
    1、模块源代码为:
   Option Explicit '强制定义每个使用的变量
    Type NOTIFYICONDATA '定义结构NOTIFYICONDATA
     cbSize As Long
     hwnd As Long
     uID As Long
     uFlags As Long
     uCallbackMessage As Long
     hIcon As Long
     szTip As String * 64
    End Type
    '以下为 Shell_NotifyIcon将用到的常量
    Public Const NIF_ICON = &H2
    Public Const NIF_MESSAGE = &H1
    Public Const NIF_TIP = &H4
    Public Const NIM_ADD = &H0
    Public Const NIM_DELETE = &H2
    Public Const NIM_MODIFY = &H1
    'Shell_NotifyIcon的函数声明
    Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA"
    (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long
   '处理消息将用到的结构、常量、API声明
    Type POINTAPI
     x As Long
     y As Long
    End Type
    Type Msg
     hwnd As Long
     message As Long
     wParam As Long
     lParam As Long
     time As Long
     pt As POINTAPI
    End Type
     Public Const WM_USER = &H400
  Public Const WM_RBUTTONDOWN = &H204
  Public Const WM_LBUTTONDBLCLK = &H203
    Public Const GWL_WNDPROC = -4
    Public trayflag As Boolean '定义托盘图标是否在桌面上
    Global lpPrevWndProc As Long
    Global gHW As Long
  Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
  Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
   '以下过程为消息循环处理
  Function WindowProc(ByVal hw As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
   If hw = Form1.hwnd And uMsg = WM_USER+100 Then'检测到鼠标点动托盘图标
    Select Case lParam
      Case WM_RBUTTONDOWN '鼠标右键按下
     Form1.PopupMenu
挖坟三星“眼球追踪技术”背后的技术团队 为什么开发者热衷在Stack Overflow上查阅API文档? Facebook推新News Feed 欲造就“个性化报纸” 女神程序员的一天:暴力测试social爬虫代码 2013IBM云存储路线图:更快,更简单,更安全 二战大数据故事:数学家、物理学家、概率论击败德国潜艇 软件定义网络服务商Pertino B轮融资2000万 Scringo社交组件,让你的应用“热闹”起来! Android开发必备:Eclipse 4.2 SR2版本发布 32场!2013年360HTML5校园行首站告捷 移动周报:不做内容,只钻技术的快播 一周消息树:中国开源发展缓慢的“病因” 百度应用引擎BAE正式开放 新增支持Node.js CloudVelocity,下一个VMware? Buffer创始人谈开发:先验证,后编程! 谷歌可穿戴式产品再度来袭:会说话的鞋子 未来Chrome OS或取得Android般成功 云落地@北京,北京市北斗公共平台或开放API? GitHub再遭攻击 主要服务中断约一小时 移动开发者将有望拥有.app域名使用权 微信将推“游戏中心”?移动互联网入口圈地加剧 美国航空公司首次开放API 并举办“黑客马拉松”编程大赛 谷歌数据中心设计的10条“黄金法则” GitHub时代:为什么我们都在开源 VMware发布Horizon Suite 三款应用打包折扣低 TOP30+应用排行榜:二月份国内外综合榜单 开源是否意味着不需要负任何责任? 微软年度科技展 酷炫技术知多少 图解Hadoop生态系统 HTML5并不给力 微软IE10又默认启用Flash Oracle出新提案:Java正逼近iOS? 谁有2002年度mcse考试试题? 再贴程序员征婚照:) 在线的进来问点问题(jsp/javabean), 实在没有分了其它帖子中送出 请问哪里有介绍用Delphi开发类似Foxmail邮件程序的文章 讨论一下怎么看别人写的代码吧 有个BC源程序用了BC下特有的类complex类,怎样做才能在VC下编译通过? VB高手请进来!!!! 小弟想考cisco认证(ccna),请大家推荐好的书籍和站点! J2EE我下载了,怎么用?安装我会,安装后怎么用? 这段程序有内存泄露吗? 强列抗议???? 有关QueryInterface的菜鸟问题 如何实现和ITS原子钟进行国际标准时间较正、查询? 哪有《Essential C++》电子书,下!谢谢 在单击GRID风格的数据窗口中的行时,row参数能指示当前点击的...(请进) 请问如何使用IIS5.0 ASP连接AS400数据库,我使用ODBC为什么不可以? IE菜单问题 怎样区别打开文本文件是big5码还是gbk码?? 大侠们,更新数据库里面的Images类型的字段的SQL语句怎么写啊,有什么好方法吗? Visual studio .net是用什么开发的啊?大家来讨论一下 求好书!!!! 我如何是好! c++的CODE如何才能最好的移植成java的 求好书!!!! 谁有字符串的压缩算法!!!慷慨送分!!! 视频数据如何在数据库中操作 求好书!!!! ??? 我需检验某表单的文本框中只能有数字,字母等字符,是用javascript做,还是用JSP做? 求好书!!!! 我为何添加不了成员变量 浏览器不能浏览JAVA2写的Applet,那里可有升级包? 还是有关于图片上传,请高手帮忙 加强型的 MSFlexGrid 我认识 KiteGirl(小仙妹) ( 是个好女孩 代表到底是什么东西? 有良知的中国人近来看看! 在vb中做的ActiveX DLL文件如何在vc中调用????? 谁能给我提供磐英810主板的显卡驱动 请问用PDM从数据库中反生成的数据模型,连接到另外的数据库中生成库表,为什么会失败? 请问如何将office2000或office xp 的激活提示除掉 怎么在LINUX下编译JAVA? 请问foxbill:.h文件之前的这些都是什么意思? MEMFILE例子的-----送分帖! 请问如何将office2000或office xp 的激活提示除掉 关于class的问题 我的“路由和远程访问” 出了一个怪问题 用VB设计自己的E-mail系统 这个就是你们说的美女檬檬吗? 我觉得....... 两个小问题————高手赐教! 一个局域网内监控程序,有点问题,请大家帮忙看看! 如图,已知梯形ABCD中,AB//DC,三角形AOB的面积等于9平方厘米,三角形AOD的面积等于6平方厘米.(1)求三角如图,已知梯形ABCD中,AB//DC,三角形AOB的面积等于9平方厘米,三角形AOD的面积等于6平方厘米. 普通玻璃和浮法玻璃的区别是什么?我总是区分不清楚... 用竖直向上的拉力F可使一物体向上以加速度5m/s²做匀加速运动,为使该物体向上以加速度10m/s²做匀加速运动,竖直向上的拉力大小应改为a.2fb.8/3 fc.2/3 fd.4/3 f(f 均为F) 如图,已知梯形ABCD中,AB‖DC,△AOB的面积等于9△AOD的面积等于6,AB=7,求CD的长 15mm浮法的玻璃什么价位 物体在地球上的重量等于在月球上的6倍,如果小强在月球上称比在地球上称轻30千克,那么小强在月球上称体重 玻璃固定在墙上的办法 电子台称如何将公斤调成市斤 测量电阻和小灯泡伏安实验.每次都不知道选什么电表,阻值不知道选哪个,还有什么时候外接,什么时候内接.每次考试都在这里丢分 玻璃怎么固定到墙上买了个不是很长但可以照全身的镜子,想固定在墙上,该用什么办法?请各位大侠支招!听说有个什么双面胶可以的,但不知道具体是什么玻璃胶,但不是玻璃胶! 重力和电场力的作用下为啥会这样运动? 高中物理电学实验测电表内阻怎么用电流表和电压表测一个电表的内阻,还是电流(压)表的测量范围不够,怎么用一个电阻进行改表?不是用G表来测,就是电流(压)表和电阻就可以测出内阻 玻璃怎么固定在墙上开鞋子店,怎么把玻璃固定在墙上摆放鞋子. 电场力和重力什么情况平衡做到过这样的题目,为什么这里会有Eq=mg不能理解,它们明明不是在一条直线啊,而且还有一个洛伦兹力.如图5. 质量为m、带电量为q的微粒以速度v与水平成45°角进入匀 玻璃的原材料是什么水晶石.石英石.石英砂有什么区别 物体50KG,摩擦因数0.2 ,用80N的拉力拉动,问摩擦力 关于电场力与重力问题在电场中怎么知道重力是不是就是电场力? 玻璃原料是什么 用80N的水平力推一个250N重的物体而未推动,则此时物体受到的摩擦力为 N.若将推力增大到100N,物体仍未运动,此时物体受到的摩擦力为 N.当向该物体施加120N的推力时,刚好让该物体匀速前进,则 把木箱放在电梯地板上,则底板所受压力最大的情况是 A.电梯以a=1.5m/s^2的加速度匀加速上升A.电梯以a=1.5m/s^2的加速度匀加速上升B.电梯以a=2.0m/s^2的加速度匀减速上升C.电梯以a=1.8m/s^2的加速度 玻璃原料是哪几种 求一道初中电学的题的讲解如图 电源电压不变 滑动变阻器滑动头位于正中央 闭合开关S后 M,N,P三灯亮度相同 现将变阻器的滑动头缓慢向左移动 则三灯亮度从亮到暗的排列顺序是( )A.M,N,P B 怎么判断电场力和重力平衡? 高中物理电学实验分压限流,内接外接,之类的使用在那里的? 基础的帮我解释下如图,电源电压恒定,闭合开关,滑片向右移动,L2会变亮,为什么? 电梯从一楼开始以0.5m/s的加速度匀加速上升,速度达到2m/s后,再匀速上升一段距离,最后以大小为0.5m/s的平方的加速度匀减速运动,到达30层楼停止运动.如果上升高度为128m,求电梯运动的时间 用这种方法测电源电动势和内阻时,误差在哪?会有怎样的测量结果?(已知两电压表的电阻.) 5.小红家的电表允许通过的最大电流是10A,她家有4个标有“220V,60W”的灯泡,1个标“220V,1000W”的热水器1台,制冷时耗电140W的电冰箱和一台耗电80W的电视机,则( )A.所有用电器可以同时使用 B.除 重力和电场力形成的复合场方法当电场力方向竖直向上,对于可以做圆周运动的小球来说,它的最低点在哪里?怎样确定?当受到的电场力方向竖直向下,对于可以做圆周运动的小球来说,它的最低 30.测量电流表内阻的电路图如图所示,实验的操作步骤如下:① 将电阻箱R的电阻调到零;②闭合开关,调节滑动变阻器R1的滑片,使得电流表达到满偏电流I0;③ 保持滑动变阻器的滑片位置不 14.课外活动小组的同学设计制作了一个电热孵卵器,他们用两根额定电压和额定功率都相同的电热丝作热源,再连入一个电阻R0,使这台孵卵器即使断了一根电热丝,单丝工作产生热量的效果仍然 已知A物体与地面间的摩擦力为10N,物体A运动的速度为20cm/s,则拉力F为____N ,拉力的功率为______W 电压表与电源、多条支路并联,究竟测的是谁的电压?这是为什么呢?不是也并联在电阻两端吗? 初中竞赛电学题,求解释. 因为月球上没有()和(),所以,月球上没有()和(),月球引力比地球小很多,只相当于地球引力的() 高中物理电学实验有几个? 如图,已知EF是梯形ABCD的中位线,三角形DEF的面积为4平方厘米,则梯形ABCD的面积为多少平方厘米 浮法、格法、平板玻璃区别 关于春夏秋冬的成语和古诗有哪些 图5表示一个斜抛物体的运动,当物体由抛出位置1运动到最高位置2时,重力做功是多少?重力势能改变了多少 什么是浮法格法玻璃 春夏秋冬的古诗、成语和名言!几个不合格哦! 对正电荷,在电势越高的地方电势能越大;对负电荷,在电势越低的地方电势能越大; 这里的这里的正电荷 与负电荷均指正场源电荷和负场源电荷吗?还是在一个无论正负点电荷作为场源电荷,放 玻璃常用的分为几种 比如(平板、格发、浮法) 都有什么区别(平板、格发、浮法) 都有什么区别 帮忙找一下描写春夏秋冬的古诗!要诗句! 电势高的地方的电势能一定比电势低的地方的电势能大吗? 玻璃的隔法和浮法英语应该怎么说RT 测电阻,但凡能用限流接法的,都能用分压吗?若有例外的请举出, 势能是不是相对位置而具有的能?势能怎么来的啊,我晕乐,电势能功和能有啥关系 这是内容:当R比R′大很多时,可以认为rg=R′.(当R比R′大很多时,调节R′基本上不改变电路的总电阻,可认为总电流不变,因此当电流表半偏时,通过R′的电流是满偏电流的一半,两条分路的电阻相 我国玻璃的产能最大的省份是 为什么:正电荷在电势高的地方电势能大,负电荷在电势低的地方电势能小? 测电压表内阻时为什么要求滑动变阻器的电阻越小越好?测电流表内阻时为什么要求滑动变阻器的电阻越大越好? 谁会高中物理电学实验 请在这里概述您的问题如图,已知梯形ABCD中的,AB‖DC,△AOB的面积等于9平方厘米,△AOD的面积等于6平方厘米.1)△BOC的面积2)求DO:OB和CO:OA的值要用黄金比那一课的知识点,不要用其他的,暂 什么叫普通浮法双层玻璃指建筑物塑钢窗玻璃 在高中物理电学实验题目中给你一个比如6V,1.5W的小灯泡和6V的直流电源(不计内阻),要怎样计算来选择电压表和电流表? 如图,已知梯形ABCD中,AB∥DC,△AOB的面积等于9平方厘米,△AOD的面积等于6平房厘米.(1)求△BOC的面积 高中物理电学实验测待测电阻的阻值没有特殊要求是不是都要用分压法? 怎么去掉玻璃上的蜡烛油?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘