教程中国
PHOTOSHOP CS9.0中文版 MAYA 8.5 FOR WINDOWS Corel Painter v9.0 Flash MX2004 中文版 Illustrator cs2 中文版
VC++6.0含sp6 中英文版 VB6.0 +sp6 简体中文版 Borland Delphi 7汉化版 MSDN for vb6.0中文版 Visual Studio 2005简体
教程中国下属 文件存储共享专家BIBIDU.COM 提供大型软件,教材,源码,电影,音乐,图书等下载 更多精品请点此进入
  您目前所在位置: 教程中国 >> VB >> 编程技巧 >> VB的API编程精粹(二) RSS订阅
VB的API编程精粹(二)
VB的API编程精粹(二)(2)
教程(视频,书籍)下载:  ASP.NET AutoCAD 数据库 C# ASP java photoshop 网页设计 delphi 3dmax Flash C++ VB 张孝祥 实例   更多请进入BIBIDU搜索
IT搜索引擎   
下面是此功能的实现步骤:
1.这里我们调用的API函数是: "Shell_NotifyIcon",在您的模块中添加如下的函数声明 和常量声明:
'以下常量告诉系统在托盘中您的图标上发生了什么 操作
'常量声明
Public Const WM_MOUSEMOVE = &H200 '在图标上移动鼠标
Public Const WM_LBUTTONDOWN = &H201 '鼠标左键按下
Public Const WM_LBUTTONUP = &H202 '鼠标左键释放
Public Const WM_LBUTTONDBLCLK = &H203 '双击鼠标左键
Public Const WM_RBUTTONDOWN = &H204 '鼠标右键按下
Public Const WM_RBUTTONUP = &H205 '鼠标右键释放
Public Const WM_RBUTTONDBLCLK = &H206 '双击鼠标右键
Public Const WM_SETHOTKEY = &H32 '响应您定义的热键
'API函数声明

'教程中国版权所有.
Public Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias " Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long
'自定义一个调用API Shell_NotifyIcon要用到的类 型"NOTIFYICONDATA"
Public Type NOTIFYICONDATA
cdSize As Long 'NOTIFYICONDATA类型的大小
hwnd As Long '你的应用程序窗体的名柄
uId As Long '应用程序图标资源的ID号
uFlags As Long '使那些参数有效它是以下枚举类型中的
'NIF_MESSAGE、NIF_ICON、NIF_TIP三组的组合
uCallbackMessage As Long '鼠标移动时把此消息发给该图标的窗体
hIcon As Long '图标名柄
szTip As String*64 '当鼠标在图标上时显示的Tip文本
End Type

'这是一个枚举类型它告诉API Shell_NotifyIcon去做什么操作
Public Enum enm_NIM_Shell
NIM_ADD=&H40 '在“金碟”中加一图标
NIM_MODIFY=&H1 '修改“金碟”中的图标
NIM_DELETE=&H2 '删除“金碟”中的图标
NIF_MESSAGE=&H1 '使类型"NOTIFYICONDATA"中的uCallbackMessage有效
NIF_ICON=&H2 '使类型"NOTIFYICONDATA"中的hIcon有效
NIF_TIP=&H4 '使类型"NOTIFYICONDATA"中的szTip有效
WM_MOUSEMOVE=&H200 '使鼠标移动消息有效
End Enum
'定义一个"NOTIFYICONDATA"类型的变量
Public nidProgramData As NOTIFYICONDATA
以上是函数及常量声明和自定义的一个类型变量,下 面是此API函数的调用方法:
2. 在窗体上用菜单编辑一个具有如下信息的菜单项:
主菜单:无标题、名称(mainMenu)
子菜单:标题(API编程)、名称(submnul);
标题(退出)、名称(submnu2).
这里只是举个例子,具体的功能你可以根据你的具体需要来编辑此菜单项
3. 在窗体的Load事件中添加如下代码:
Private Sub Form_Load()
'隐藏窗体
With Me
.Top =-10000
.Left = -10000
.WindowState = vbMinimized
End With
'设置类型NOTIFYICONDATA所具有的特征
With nidprogramData
.cbSize = Len(nidProgramData)
.hwnd = Me.hwnd .uld = vbNull
.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
'触发鼠标移动消息
.uCallbackMessage = WM_MOUSEMOVE
.hIcon = Me.Icon '“托盘”中放入窗体图标,你可以把窗体的图标换成你所喜欢的图标
.szTip ="VB 的 Win32 API 编程" & vbNullChar
End With

'调用该函数
Shell_NotifyIcon NIM_ADD,nidprogramData
End Sub
'根据不同的鼠标消息做不同的操作
Private Sub Form_MouseMove(Button As inte ger, Shift As lnteger, x As Single, Y As Single)
On Error GoTo Form_MouseMove_err:
Dim Result As Long
Dim msg As Long
'X的值依赖与显示模式的设置
If Me.ScaleMode = vbpixels Then
msg = x
Else
msg = x/Screen.TwipsPerPixe1X
End If
Select Case msg
Case WM_LBUTTONUP
'在这里加入鼠标左键释放时你想做的操作
Case WM_LBUTTONDBLCLK
'在这里加入双击鼠标左键时你想做的操作
Case WM_RBUTTONUP
'通常这里弹出你的功能菜单
PopupMenu mainMenu
Case WM_MOUSEISMOVING
'在这里加入鼠标正在移动时你想做的操作
End Select
Exit Sub

Form_MouseMove_err:
'在这里加入你的处理异常错误的代码
End Sub

来源:www.upschool.com.cn
作者:吴龙杰
关键字:VB,API,API编程
发表日期:2007-2-17 0:30:47

网页显示有限 阅读全文请下载本文完整版WORD文档

上一篇:API函数快速入门--怎样在VB中声明和使用API函数   下一篇:


共2页 9 7 [1] [28 :>

本文的相类似文章
  • VB的API编程精粹(二)
  • API函数快速入门--怎样在VB中声明和使用API函数
  • VB的编译优化
  • VB中用Multimedia MCI控件开发多媒体应用
  • 认识VB的扩展名
  • VB编写键盘记录器
  • 在VB中操纵OLE服务器应用程序
  • 推荐几种vb中创建超长时间计时器
  • 用VB编写键盘拦截程序
  • 猎取当前QQ聊天内容-VB版
  • 网友评论 查看本文全部评论
    笔 名: *
    评 论:
    最多500字。当前字数:0
    联系方式:
    验证码:
    在学习中进步 在进步中成长 教程中国相随您的成长之路
    华腾联合科技股份有限公司版权所有
    广告联系:Rosibo@163.com