English Sentence Loading...
英语句子加载中...
VB制作特殊窗口
作者:junyuqin 日期:2007-05-03
VB托盘程序详解
作者:junyuqin 日期:2007-05-03
很多软件运行时会在系统托盘区(就是桌面右下角显示时间的区域)出现一个小图标,它作为程序运行的一个标志,我们可以通过使用小图标所弹出的菜单来控制应用程序的状态。本例就给出了一个功能比较完整的托盘程序,我们可以看到怎样用API函数Shell_NotifyIcon来添加、删除、更改托盘图标;而且例中还演示了为托盘图标添加右键菜单和浮动提示的方法。 程序(附后)用到了Shell_NotifyIcon、SendMessage、CallWindowProc、SetWindowLong等API函数,其中Shell_NotifyIcon是主要的函数,它用来添加、删除、更改系统托盘区(taskbar status area)的图标,所以我们先来看看这个函数的声明和参数:
使用API函数之前必须先在程序中声明如下:
Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long 其中各参数的意义如下表: 参数: 意义dwMessage 为消息设置值,它可以是以下的几个常数值:0、1、2 NIM_ADD = 0 加入图标到系统状态栏中NIM_MODIFY = 1 修改系统状态栏中的图标NIM_Delete = 2 删除系统状态栏中的图标LpData 用以传入NOTIFYICONDATA数据结构变量,其结构如下所示:
Type NOTIFYICONDATA
cbSize As Long 需填入NOTIFYICONDATA数据结构的长度HWnd As Long 设置成窗口的句柄Uid As Long 为图标所设置的ID值UFlags As Long 设置uCallbackMessage,hIcon,szTip是否有效UCallbackMessage As Long 消息编号HIcon As Long 显示在状态栏上的图标SzTip As String * 64 提示信息End Type 返回值Long,非零表示成功,零表示失败在使用这个API函数之前我们应该先定义结构类型NOTIFYICONDATA:
使用API函数之前必须先在程序中声明如下:
Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long 其中各参数的意义如下表: 参数: 意义dwMessage 为消息设置值,它可以是以下的几个常数值:0、1、2 NIM_ADD = 0 加入图标到系统状态栏中NIM_MODIFY = 1 修改系统状态栏中的图标NIM_Delete = 2 删除系统状态栏中的图标LpData 用以传入NOTIFYICONDATA数据结构变量,其结构如下所示:
Type NOTIFYICONDATA
cbSize As Long 需填入NOTIFYICONDATA数据结构的长度HWnd As Long 设置成窗口的句柄Uid As Long 为图标所设置的ID值UFlags As Long 设置uCallbackMessage,hIcon,szTip是否有效UCallbackMessage As Long 消息编号HIcon As Long 显示在状态栏上的图标SzTip As String * 64 提示信息End Type 返回值Long,非零表示成功,零表示失败在使用这个API函数之前我们应该先定义结构类型NOTIFYICONDATA:
用VB制作下雪的特技景象
作者:junyuqin 日期:2007-05-03
对于下雪的景象大家可能都不陌生,我们还是用VB来制作一个下雪的景象吧。其实制作这样一个下雪的景象并不复杂,它的原理是首先在底色为黑色的屏幕上随机画出许多白点(雪花),然后使这些雪花不断地向下移动(重画),反复循环,就成功地模拟了下雪的景象。下面是这个小程序,你可以修改其中的一些数据调整雪花的密度和雪花落下的快慢。
Dim Snow(1000, 2), Amounty As Integer
Private Sub Form_Load()
Form1.Show
DoEvents
Dim Snow(1000, 2), Amounty As Integer
Private Sub Form_Load()
Form1.Show
DoEvents