一、编程原理
(1)WINDOWS API函数ShowWindow可以实现对程序界面(包括WINDOWS9X和其他应用软件)以及子项目的显示控制,通过调用相关消息常数SW_HIDE = 0(隐藏)和SW_SHOW = 5(显示)就可以执行对指定界面项目的隐藏和重新显示出来。它所需要的另外一个参数是被隐藏项目的句柄;
(2)GetCursorPos函数能够返回当前鼠标所在位置的屏幕坐标,而函数WindowFromPointXY恰好能够根据屏幕坐标返回该位置的窗体项目句柄——这正是我们所需要的!
(3)为了方便操作,我们需要为它注册一个系统级工作(激活)热键,我选择了F12;SetWindowLong、GetWindowLong、CallWindowProc、RegisterHotKey、UnregisterHotKey是五个必须的热键注册、反注册函数;使用它们一定要小心谨慎,否则可能会导致开发平台的暂时崩溃,你不得不看到“该程序执行了非法操作,即将被关闭”的警示窗口,而且你的工作成果会立即化为乌有;但是如果你按照本文的编写方法,保你“一路平安”;
(4)为了方便“记忆力”不好的朋友,我们需要一个列表框来显示已经被隐藏的项目的句柄,以便能够适当、必要的提醒。
二、编程实践
(1)启动vb6,建立一个标准exe工程,添加一个窗体CHINAHIDE,添加四个command控件hideOK对应“开始隐藏”、unhide对应“恢复一个”、uNhideall对应“全部恢复”;添加listbox控件list1(用来纪录句柄);两个标签控件用来显示有关提示信息。调整上述控件到适当位置和合适大小,双击窗体,写入以下代码:
Dim LasthWnd As Integer '被隐藏项目句柄
Private Sub Form_Load()
'程序启动时注册功能热键F12
preWinProc = GetWindowLong(Me.hwnd, GWL_WNDPROC)
SetWindowLong Me.hwnd, GWL_WNDPROC, AddressOf Wndproc
uVirtKey = vbKeyF12
RegisterHotKey Me.hwnd, 1, Modifiers, uVirtKey
End Sub
Private Sub uNhideall_Click()
'恢复所有被隐藏项目
For res = 0 To List1.ListCount - 1
LasthWnd = List1.List(res)
ShowWindow LasthWnd, SW_SHOW
Next res
List1.Clear
'清空句柄列表框
End Sub
Public Sub hideOK_Click()
'当"开始隐藏"按钮被点击时,将窗口最小化
Me.WindowState = 1
End Sub
Private Sub UNHIDE_Click()
'恢复一个选定的被隐藏项目
If List1.ListIndex < 0 Then
MsgBox "请首先选择一个被恢复的隐藏项目!", vbExclamation
Exit Sub
End If'验证句柄列表栏目是否已经被选中
hideINDEX = List1.ListIndex
LasthWnd = List1.List(hideINDEX)
X = ShowWindow(LasthWnd, SW_SHOW)
'恢复选定的被隐藏项目
List1.RemoveItem (hideINDEX)
'移除该项目有关信息
End Sub
Private Sub Form_Unload(Cancel As Integer)
'当程序被关闭时,取消已经注册的热键
SetWindowLong Me.hwnd, GWL_WNDPROC, preWinProc
UnregisterHotKey Me.hwnd, uVirtKey
'取消系统级热键,释放资源
End'终止程序运行
End Sub
'主窗体代码结束
(2)添加一个标准模块,命名为MOULDLE1,写入以下代码:
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
'在窗口结构中为指定的窗口设置信息
Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
'从指定窗口的结构中取得信息
Public 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
'运行指定的进程
Public Declare Function RegisterHotKey Lib "user32" (ByVal hwnd As Long, ByVal ID As Long, ByVal fsModifiers As Long, ByVal vk As Long) As Long
'向系统注册一个指定的热键
Public Declare Function UnregisterHotKey Lib "user32" (ByVal hwnd As Long, ByVal ID As Long) As Long
'取消热键并释放占用的资源
'上述五个API函数是注册系统级热键所必需的,具体实现过程如后文所示
Public Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
'本函数是实现隐藏的核心,参数HWND既是需要隐藏项目的句柄
'nCmdShow参数可以决定使隐藏还是显示
Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
'本函数得到当前鼠标所在位置的屏幕坐标
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
相关文章
热点关注
- 在asp.net中为Web用户控件
- .NET3.5和VS2008中的ASP.N
- 对.NET Framework 反射的
- Asp.net Ajax 1.0 异步回
- ASP.NET2.0的控件状态和视
- 通过避免下列10个常见ASP.
- 中国地区三级联动下拉菜单
- 解析Asp.net中资源本地化
- 一个无刷新效果定时自动更
- 动态创建MSSQL数据库表存
- asp.net用url重写URLReWri
- 使用ASP.NET Atlas编写显
- 关于ASP.NET调用JavaScrip
- 使用ASP.Net Forms模式实
- asp.net ajax 使用updatep
- 优化ASP.NET应用程序性能
- ASP.NET中动态修改web.con
- ASP.NET中利用Crystal Rep
- asp.net如何生成图片验证
- 基于ASP.NET的Web动态控件
- 分享个极好的无刷新二级联
- asp.net 2.0 上传控件的使
- 创建ASP.NET监视服务器进
- Asp.net把UTF-8编码转换为
- 开发基于ASP.NET WebServi
- asp.net结合html,javascr
- asp.net 2.0下嵌套masterp
- 正则表达式提取数字
- 最新版FreeTextBox(版本3.
- 获取本机上配置好的Oracle
- ASP.Net全局变量的设置和
- VB几个有用的函数
- 用代码画折线图/柱形图/
- FCKeditor2.2 ASP.NET2.0
- 客户端回调实现gridView无
IDC资讯
虚拟主机
域名注册
托管租用
vps主机
智能建站
网站运营 建站经验 策划盈利 搜索优化 网站推广 免费资源
网站联盟 联盟新闻 联盟介绍 联盟点评 网赚技巧
行业资讯 业界动态 搜索引擎 网络游戏 门户动态 电子商务 广告传媒
网络编程 Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术 Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷 Internet Explorer
网页制作 FrontPages Dreamweaver Javascript css photoshop fireworks Flash
程序设计 Java技术 C/C++ VB delphi
网络知识 网络协议 网络安全 网络管理 组网方案 Cisco技术
操作系统 Win2000 WinXP Win2003 Mac OS Linux FreeBSD
网站运营 建站经验 策划盈利 搜索优化 网站推广 免费资源
网站联盟 联盟新闻 联盟介绍 联盟点评 网赚技巧
行业资讯 业界动态 搜索引擎 网络游戏 门户动态 电子商务 广告传媒
网络编程 Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术 Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷 Internet Explorer
网页制作 FrontPages Dreamweaver Javascript css photoshop fireworks Flash
程序设计 Java技术 C/C++ VB delphi
网络知识 网络协议 网络安全 网络管理 组网方案 Cisco技术
操作系统 Win2000 WinXP Win2003 Mac OS Linux FreeBSD




