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

VB如何使窗体最小化并消失

HTML文档下载 WORD文档下载 PDF文档下载
VB如何使窗体最小化并消失

如何做到当我们单击窗体的最小化和关闭按钮时,窗体先最小化到任务栏成为按钮,然后消失呢?金山词霸能做到,我们也可以做到。

只要我们能截获这两个事件发送给窗体的消息,然后换成我们自定义的过程,问题就解决了。首先,用CloseWindow使窗体最小化;然后,用Form1.Visible = False使窗体消失。

这两个事件共用一个消息:WM_SYSCOMMAND,不同的是传递给窗口函数的wp参数。为取得这两个事件的wp参数,有两个方法

1、用vb的常数,这是一些以SC_为前缀的常数(S代表SYS,C代表COMMAND)

2、编程取得它们,事实上,我采用的是这种方法。在窗口放两个文本框,当任何WM_SYSCOMMAND消息发生时,先在文本框里显示wp和lp的值,很容易的发现,单击最小化按钮时,wp=61472;单击关闭按钮时,wp=61536。现在就可以开始编程了。

为了实现对窗体的子类处理,采用MsgHook32控件。

源代码如下:

Option Explicit

' API函数声明
Private Declare Function CloseWindow Lib "user32" (ByVal hwnd As Long) As Long

' 常数声明
Private Const WM_SYSCOMMAND = &H112

Private Sub Form_Load()
Msghook1.HwndHook = Form1.hwnd
' 将Msghook1绑定到Form1上
Msghook1.Message(WM_SYSCOMMAND) = True
' Msghook1拦截WM_SYSCOMMAND消息
End Sub

Private Sub Msghook1_Message(ByVal msg As Long, ByVal wp As Long, ByVal lp As Long, result As Long)
Text1.Text = wp
Text2.Text = lp
If wp = 61472 Or wp = 61536 Then
' 单击的是最小化或关闭按钮
CloseWindow Form1.hwnd
' 最小化窗口
Form1.Visible = False
' 使窗口消失
Unload Form1
' 卸载窗口。如果有通知栏图标,就不用卸载窗口
Else
Call Msghook1.InvokeWindowProc(msg, wp, lp)
' 其他的事件由默认窗口函数处理
End If
End Sub

不仅是单击窗口右上角的按钮,其实,在系统菜单里选择最小化和关闭菜单项,也有同样的效果。

战歌:85后手游开发团队背后的故事 分秒钟做款App:细数国内外在线DIY应用网站 指点传媒CEO专访:紧握二三线市场用户命脉 专访Waygo创始人:白切鸡怎么翻译? 探究共享软件海外营销新策略(西安站) 讲师秀8:车音网沈康麒和他的智能驾车服务 数据可视化独领风骚:看这6家初创公司如何玩转大数据? 最新研究显示:IE10防恶意软件能力比Chrome等浏览器都要强 Windows Blue正式定名Windows 8.1 对Windows 8及RT用户免费 Testin云测试破1000万次 自动化测试成趋势 接手Android后首次接受媒体采访 Sundar Pichai谈Android未来 C语言实现二分法查找 让开发者高效编程的10个新框架 Google Analytics中显示访客停留时间为“0”的秘密 大数据之惑 麻省理工三位物理学家自建数据库服务Cloudant 融资1200万美元 网页浏览器进入再造新时代 AMD揭露HSA运算架构新技术hUMA细节 美团悄然上线云主机服务:与亚马逊殊途同归,还是另有谋划? 微软发布deep-tech团队招募令,期望获得下一代开发者的支持 2013谷歌I/O开发者大会:发布多个软件产品和服务 C语言实现二分法求解方程 开发测试云与虚拟化解决方案 学苹果?微软淘汰Points支付系统改用Gift cards 甲骨文改变Java版本号命名方式 [CTO俱乐部第97期]中科院、腾讯、深圳明源研发团队管理经验分享 Android Studio来了,它能取代Eclipse吗? Google Play Game不够开放,被OpenKit炮轰 Google Play Game Service详解 不仅提供API更提供后端支持 IBM Power走向Linux,是必然的! 美国国家安全局解密特工培训手册:如何利用谷歌等大众搜索工具搜集保密数据 考水平考试的朋友过来看看 我要毕业啊 ===============想知道111222去向的朋友,看这(独家披漏)===================== 以下SQL语言如何写? 111222走了~~送分~~~心里不好受~~~ 111222真的走了~~~~~~~~~~~ JBuilder中用MYSQL数据库,用中文进行条件查询时,查不出任和数据? ASM 菜鸟问题,请大家帮忙!谢谢 解释一下好了吗? ============答对我的问题者,将可获得111222的签名照片!!!!!!!!=========== 关于图片的上传 ======== 绝对好消息,activereport2.0已经release 了,cracker们出动啊~~~~~加油 ============= 关于什么才是真正的系统分析和系统分析员的讨论!——欢迎大家参加,进行善意地讨论!^&^ 今晚的球赛什么时候开始啊? 哪里有关于水平考试(高程)的模拟题的啊??? 为什麽还是不能显示中文呢? 怎样获取WIN2000的密码 在父窗体怎样画jpg格式的背景图? 如何注册MSComm控件????????? 如何解决这个问题啊?重赏啊!!!! 公告: 从现在开始封shines 111222 :)流芳斑主,结贴的工作要开始了,会很累啊!我代表大家先谢谢你了! 怎样改变MSHflexgrid中每条记录的背景颜色。急急急急急急急 各位,能不能给我讲一下“句柄”是怎么一回事? 唉,心情不爽 关于C++语法的问题? 灌水-----大学时的恶作剧(转载) "setdibs()"是什么来着,请指教,谢谢! 写注释不宜过头 这段代码错在哪里? 请大家预测一下比分(参与者都有分)开赛后就不算了,还有半个小时,赶紧着 写网络电话程序的讨论 最后一帖,贴完睡觉----如何在电梯里捣乱 怎样定制一个在程序中重用的组件?只能通过包方式吗? 寻寻觅觅 汉英计算机科技文章 互译!!有劳各位朋友费心帮忙找找 我靠!真TMD不爽,这个时候准老婆的老妈进了医院! 怎样调用*.db格式文件 谁知道哪儿有英汉互译,急急急急!!!! ISO 9001认证 VS CMM2 谁知道哪儿有《神秘的人月》下载? 为111222求情 怎样可以修改浏览器的标题? 怎样可以修改浏览器的标题1? 哪位能给我一个source insight 3.0的sn号? 怎样可以修改浏览器的标题2? 如何异步调用远程组件的方法? 哈哈!球赛开始了!我也不想去医院了!!!顶多明天挨顿骂! 上CSDN的有谁是七月份毕业,大家认识一下 我想问问,一个程序员的黄金年龄是多少? 如何由CRgn得到一组Polygon? 初学者请教一个小问题!急急急,尿都快急出来啦! (X-2500)*[8+(2900-X)/50*4]=5000 8.5x-3.5x=27.5 求方程 2(x-2. 解方程(4* (2900-X) / 50 +8 )(X-2500)=5000 0.1(X+2)-0.9=0.5这个方程怎么解 8(X-6.2)=41.6 (X-3)/2=7.5 这两个方程怎么解 (x-2500)(50分之x-2900乘以4+8)=5000 ×的2.5倍比它的1.8倍多9.8.求方程的解 帮忙解一道方程,x-18=3(x-26) (2900-x-2500)(8+4x/50)=5000怎么算 方程:6乘9+3x=70怎么解? (x-2)/(x+2)+16/(4-x^2)=(x+2)/(x-2) 这个方程怎么解?250X=200*(6.75-X) 3x+0.9=3.3的方程怎么解 解一道方程!3分之2(x-y)=4分之x+y-1 6(x+y)=4(2x-y)+16! 250X=200(6.75-X)怎么解,详细点,谢谢 3x-2.4=6.9 方程 第十六题该怎么算?方程式来的. x÷250+x÷200=6.75这个方程怎么解, 方程-3x>-6的解是? [(4-x+4)*4/2]+(4x/2)=16 这道方程怎么算 X/250+X/200=6.75 这题方程具体怎么解 请解这个方程:(9×0.7)×3x=1 x+9=2x-9这个方程怎么解 方程8分之1x-4分之1=2分之1的解是() 8(×-6.2)=41.6(方程) 求方程9^2x-1=4^x的解 怎么解x-(6/1x-30)=8/7x这个方程怎样解 (X+1)*6=(X-1)*8这个方程咋解? 方程9^(2x-1)=4^x的解x=RT 1/3(x+50)=40%x,这个方程怎么解 x-4/1x=(150-x)-30 这个方程怎么解?是四分之一!不是一分之四! 判断题“方程X-1.2=1.6的解是2.8”这句话对吗? 帮我解个方程:60×(X--1)=50×(X+0.2) x+4分之1x=30怎么解这个方程? 数学判断题:方程5+2x=16.2的解是5.6 50 ÷x =10 方程式 20分之1x加30分之1x=1求方程怎么解? 判断题:x=2即是方程式,也是方程的解 3x+2.5(68-x)=180,3x+2(68-x)=180,2.5x+2.5(68-x)=180,这三道方程怎么解 x-(8/1+21)+6/1x-4=102这个方程怎么解 怎么做在等式两边都有X的方程,比如说,8X+4=10X,要详解过程哦 X-0.6=0.48的方程式怎么解X-0.6X=0.48的方程式怎么解 已知方程3(3x+3)—1=2x的解和3x+m=四分之m—27的解相同!求m的值 方程14+(4.8x-6)-2.8x=8怎么解 42=0.5*6*(6*x)怎么解这个方程 已知方程3(3x+3)-1=2x的解与关于x的方程3m+m=m/4-27的解相同,求m的值. ﹙6分之5+8分之5﹚×x=20分之7(方程加过程) 方程x^2-|x|-6=0的解是 已知方程3(x+3-1)=2x的解与关于x的方程3x+m=3m-27的解相同,求m的解 列方程,求x的解 输入20,乘6,减去7x输出50 解一下方程;2(x+0.6)=3(x-0.1) 8(x-3)-5x=27类似的方程跪求!有的话给我发十道 列方程式解答:240比X的一半多60.一个数加上它的20%后是8.4,求这个数. (18+x)/(48+x)=40%这个方程的过程怎么求? (x-3)+5x=27用方程解 【5+x】*8/2=6哦【列方程, 求解方程:200(x-15)=200*5+80(x-5) 要有过程 谢谢 8(x-3)-5x=27方程怎么做?完整无误! X+6/5X+6/5X*31/4=320这个方程怎么解
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn