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

用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
细数IE11的七大变化 2013中国大数据技术大会,你不可错过的10个理由 Unity 2D全球发布,开发者梦想照进现实 Kraken:改变PayPal开发文化的Node.js框架 微软高管:我们将不会再有三个Windows平台 中兴明年推智能手表 暂只能与自家手机搭配使用 移动开发必备!15款jQuery Mobile插件 Chrome新变化:在地址栏里增加搜索按钮 电信行业大数据实践走进大数据大赛:电信网络寻呼黑洞分析 京东云开发者沙龙(北京站):“千人千面”的机遇 小工具、大能量——2013移动开发工具调查报告 人人网重新布局移动社交战略 专注学生群体发布新版移动客户端 谷歌把“OK,Google”带到Chrome 让PC也能便捷语音搜索 美国女性工程师远没有你想象的多 技与艺:对话《雨血》系列制作人梁其伟先生 2014年平板电脑或将占PC市场的“半壁江山” 【开源推荐】Nutz:Java项目中SSH框架的最佳替代品 你的数据库准备好过冬了吗 开源将成为SDN最大的风险! “大姨吗”CEO柴可:女性健康白皮书的发布与“大姨吗”的未来 看中国大学生的移动创意激情 第六届英特尔杯软件创新大赛侧记 在哪里工作更好?Facebook大胜Google WDC超链接图:涵盖35亿网页、1280亿超链接 英特尔:机器已扛不住亚洲的空气污染 IE11中全新增强的F12开发人员工具 TUP第31期报名已满 向主讲人《浪潮之巅》吴军提问征集 对话Spark核心作者Ion Stoica:我的编程之路从2KB内存开始 埃洛普出局?微软董事会称Mulally、Satya有望是下任CEO 百度开源平台上线,聚合百度开源项目 盘点TOP500:值得关注的超算,及当下趋势 【BDTC讲师】Tachyon作者:大数据存储以及处理框架经验分享 about Release?? 在非控制台中,怎么取得运行者给的参数。 高难问题:Delphi 程序如何向CBuilder编写的DLL传递窗体指针,在DLL中如何用 关于实现头像跳动的问题!!!???? 请问我们平时用的电话机,传输的是数据信号还是模拟信号? outlook express有毒? 哪位大下指点一下:html 带参数访问 servlet 小小调查,向有识之士请教~~~ 谢谢~~~~ 有没有一种线程安全的方法来取得一张表的元组个数? listview排序的,过来看看。。 有一获国家专利的中文输入法软件急于开发 帮忙解释一下implementation什么意思,有什么作用. A Question about ActiveForm and TabStop. 用于从INI文件中读字串的函数是什么?请示高手! 清問:Datareport實現不了的功能如何實現?清大蝦指教,謝謝! 检测下拉列表中批配项,有则选中 为什么DBGRID显示一片空白,记录应该取到了。代码如下: 谁有免费出国代理,急用。如果能有,马上给分 关于学习.net与j2ee的抉择问题,欢迎各位大侠热烈讨论!!! 求PHP代码,功能是:判断字符是否全部为汉字? 又是MSFlexgrid的问题!!!请大家帮忙~! ActiveX访问数据库的问题? REDHAT LINUX 7.2下如何建立多个用户?多谢指点! 关于网线!高分!!!!! 关于生成文件的方法? 课程表开发 请问各位前辈,是否只有新增加的字段才有可能成为计算字段?谢谢! 俺要写一个简单的文本的报文,string类型的 关于生成文件的方法?..... 有谁能告诉一下我CVS和SSF是什么?,具体是指些什么?? WIN2K 的问题:1、怎么允许本地普通用户(user)关机;2、怎么能让本地普通用户开机后,客户机连接到SQL SERVER?3、为什么我的SQL量SERVER2K需要停止然后再启动客户才能用? 如何用VB把存储在ORACLE库中的图片字段取出成.JPG格式的图片文件????急在外出差呀多谢了~~~~~ 如何退出函数?exit function??? 测试2000的TCP/IP是否通,用什么命令 求助开发课程表提示 (*****向斑竹你提个小见意,大家最好都来看看,这个想法好不好!****) 为什么我做的增加功能有两个必须要按两次“添加”按钮才能新增一条记录啊? 很急,请教高手,如何把一个ip格式的字符串转换成ip类型,不是用getbyname(),而是像int和string转换一样的概念 请问如何让基于对话框的工具条一开始就浮在上面 来者有分,关于ado的 毛子青论文<<动态规划的优化>>,一个最长子序列的算法,请高手看过来(给出c实现代码的送20分!) 在鼠标单击时间中,可以使用什么函数取得鼠标点击处的坐标值 怎样在单击左键时弹出PopupMenu? 连续20多天加班,近来明显感到体力透支,做个调查!!!(有分) ASP调用VB编写的ActiveX DLL的问题 请教一sql语句 在Unix下用cc(实际上是cc_bundled文件)编译c程序时,报错“const" will become a keyword,或者告诉我“Function prototypes are an ANSI feature" 为何加入winsock2.h后会出现很多问题? 热烈庆祝:Kingron重出江湖!!!菜鸟们有福喽……散分 you shen me qu bie ? please tell me , xie xie ! [■■■Delphi猛料■■■]V1.3发布~~~~~~~更新到2001.12.12 钢的密度是多少?怎么计算他的重量?直径40mm,L200,密度是不是0.787是不是这样计算:2*2(半径)*3.14(π)*20(长)*0.787(密度)/1000(倍),或错在哪里?我既然把这个计算方法忘记了 为什么浮力等于排出水的重力RT 八年级上科学作业本(浙教版)B第8页第五节水的浮力(2)的第8题2006年5月,经过长期专业训练的魔术师大卫·布莱恩在水族馆玻璃缸中生活了177个小时,布莱恩生活的玻璃缸呈球形,容积约为7. 现有32g某气体,该气体分子由三个原子构成,它的摩尔质量为64g/moL.若阿伏加德罗常数NA≈6.02x10的23次方moL的-1次方表示,则该气体的物理的量为 moL 标准状况下,气体的摩尔体积一定是22.4L/mol吗答案不是这个选项,能帮我举出一个反例吗 漂浮的物体受到的浮力是不是等于排出水的重力、这个好像是阿基米德原理、但是阿基米德原理只能用于悬浮啊. Q235B、Q345B钢板的最新价格是多少? 在标准状况下1mol任何气体所占的体积都约是22.4L 还是22.4L/mol? 这两个单位的区别? 为什么物体静止在水时,浮力等于重力 标准状况下,5.6L某气体的质量为11g,其摩尔质量是_____ 任何气体在标准状况下气体摩尔体积都为22.4L/mol吗 判断物体沉浮的条件字母表达 要全= 标准状况下,8.5g某气体占有体积为5.6L,则此气体摩尔质量和相对分子质量是多少? 只有在标准状况下,气体的摩尔体积才是22.4L·mol-1 为什么错了 冰水混合物在零度会怎么样? 在标准状况吓,5.6L某气体的质量为10克.则该气体的摩尔质量为?给我说说, 一块长方体钢板长2米宽1.5米它的重量是51.48吨已知每立方米钢材中7.8吨这块钢板厚多少米 如果往热橙汁,加冰块使它处于冰水混合物状态,此时橙汁是零度吗?为什么 低合金高强度结构钢钢板 460C 10*2000*8000是什么意思主要是10*2000*8000 一块长方体钢板,长22米、宽1.5米,它的重量是54.18吨,已知每立方米钢材重7.8吨,这块钢板厚多少米 根据阿佛加德罗定律,下列说法正确的是 a同温同压下两种气体的体积之比等于摩尔质量之比b同温同压下两种气体的物质的量之比等于密度之比 c同温同压下两种气体的摩尔质量之比等于密度 低合金高强度结构钢的牌号主要有 哪三个部分组成 长22米,宽1.5米得一块长方形钢板,它的重量是51.48吨,已知每立方米钢重7.8吨,求这块钢铁厚多少米 依照阿伏加德罗定律,下列叙述正确的是 ( ) A.同温同压下两种气体的体积之比等于摩尔质量之比   B.同温 请问低合金高强度结构钢Q345能与碳素结构钢Q235焊接吗?焊接以后会漏水, 一块长方体钢板,长3米,宽2米,它的重量是4.68吨,已知每立方米钢材重7.8吨,这根钢板后多少分米? 根据阿伏加德罗定律,下列叙述中正确的是(双选) A.同温同压下两种气体的体积之比等于摩尔质量之比 B.根据阿伏加德罗定律,下列叙述中正确的是(双选)A.同温同压下两种气体的体 为什么说“无论外界气温如何,冰水混合物的温度始终是0℃”?请不要复制哦,给我很详细明了的答案好吗~外界气温升高冰水混合物不吸热吗?外界气温降低冰水混合物为什么不会结冰呢?谢谢 一块长方体钢板,长1.8米,宽1.5米,厚0.02米.如果每立方米钢重7.8千克,这款钢板重 有关浮沉的一道物理题在一个水槽里装入适量的水,把一个连接著管子的小胶瓶(瓶内只有空气)放入水中..胶瓶悬浮...若向瓶内呼气,则胶瓶上浮还是下沉..那吸气呢?并说明理由 在标准状况下 ,体积为8.96L的CO和CO2的混和气体共14.4g,混合气体中碳原子的个数是 NA+的摩尔质量为23g/MOL这句话对吗? 同温同压下,两种气体摩尔质量之比等于?--------我在线等 已知有4.4g二氧化碳,有—— 个摩尔原子 有——个碳原子 45号钢的密度是多少?应该跟A3及其他钢材都不一样的吧 把一块0℃冰放入0℃的水中和把它放水0℃的盐水中现象相同吗?为什么? 14.4g的co与co2的混合气体在标状下体积为8.96L,为什么平均摩尔质量为36g/mol,怎么算得 下列现象不可能发生的是:A水的沸点低于或高于100摄氏度B-10摄氏度的冰块放在0摄氏度的水中,冰块会融化C物体吸热,温度保持不变D用敞口的锅烧水,当水沸腾后用猛火继续加热,水温不变 把零度的冰放入零度的水中和把它放入零度的盐水中现象相同吗?为什么? 16Mn可以用什么材料替代 lbmol/cuft是密度单位,怎么换算成kg/m³呢 把一块冰放在273K的水中,另一块放在273K的盐水中,各有什么现象? 16Mn材质,以下几种符号分别代表什么意思? 冬天浇筑混凝土后温度达到0度以下,上冻了对混凝土有什么影响会出现什么状况? 物体沉浮与密度的关系?过了当天就没分了. 为什么在标准状况下,1摩尔的任何气体的体积相同 224毫升某气体在标准状况下的质量为0.32克,该气体的摩尔质量约为 求高中化学各种物质的沉浮(密度)情况例如:四氯化碳比水重,所有的烃比水轻请系统的讲讲,之间的联系,最好分无机有机让我彻底分辨各种物质的沉浮情况 1摩尔气体的体积为22.4L时、该气体一定处于标准状况吗?要有几句的理由 5克某金属混合物与500毫升,1摩尔/升的盐酸反应,收集到的气体在标准状况下的体积为2.8升,那么这一种金属混合物可能是( )A.铁和锌 B.镁和铝 C.铁、锌和钙 D.镁、铁和锌 物体的沉浮和物体的密度和液体的密度大小有没有关系拜托各位了 3Q我想知道物体的沉浮和物体的密度和液体的密度大小有没有关系.理论上的我懂、但是想知道为什么 顺便提一个题、两个 同温同压下相同体积的某气体与H2的质量之比为22,则该气体的摩尔质量为 冬天在室外晾衣服好吗? 用盐水选种密度1.1*10的3次方,现配500ml盐水,质量0.6kg,问符合要求?如不符合加盐还是水,加多少? 在同温同压的情况下,知道CO2,H2,CO三种气体的混合气体的摩尔质量为28,怎么求三种气体的体积比 有一种气体的质量是14.2克,体积是4.48升,该气体的摩尔质量是? 盐水选种问题中,为什么加水可以使盐水的密度变小,盐水的密度与浓度有关吗? -10摄氏度的冰块放在0摄氏度的水中,冰块会融化吗?-10摄氏度的冰块放在0摄氏度的水中,冰块会融?下列操作不会使汽水中已经溶解的二氧化碳逃逸出来的是 A.打开汽水瓶盖 B.搅拌汽水 C.加热汽 448ML某气体在标准状况下的质量为1.28克,求气体的摩尔质量是32还是64 八上年级科学 水的浮力 15.体积为1000 cm3的物体,放入水池中,处于静止状态,物体受到的浮力为6N,求:(1)物体浸入水中部分的体积是露在外面的体积的几倍?(2)如果将物体全部浸入密度0.8×103kg/m3为
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn