上面说的都不对,应该使用子类化来捕获窗口消息来触发事件,要用到的 API 主要是 SetWindowLong

解决方案 »

  1.   

    发信息给你了.
    好象在 WM_NCMOUSEMOVE 消息里面使用 WM_NCHITTEST 也可以检测到你点击最小化按钮的事件。
      

  2.   

    不用调api
    vb自带form_resize事件
      

  3.   

    Private Sub Form_Resize()
    If Form1.WindowState = 1 Then
    MsgBox "ok"
    End If
    End Sub
      

  4.   

    人家是要在最小化事件前面捕获,不用 API 用什么?
    Form_Resize 是在窗口的大小已经调整了以后才发生的,相当于 WM_SIZE 消息。
      

  5.   

    2887940能不能和我说一下子类,我在里面看见有HTMIXBUTTON但不知道如何用Resize我知道可以的,但是我要得到不是这种效果
      

  6.   


    Resize 事件
          当一个对象第一次显示或当一个对象的窗口状态改变时该事件发生。(例如,一个窗体被最大化、最小化或被还原。)语法Private Sub Form_Resize( )Private Sub object_Resize(height As Single, width As Single)Resize 事件语法包括下列部分:部分 描述 
    object 一个对象表达式,其值是“应用于”列表中的一个对象。 
    height 指定控件新高度的数。 
    width 指定控件新宽度的数。 
    说明当父窗体调整大小时,可用 Resize 事件过程来移动控件或调整其大小。也可用此事件过程来重新计算那些变量或属性,如:ScaleHeight 和 ScaleWidth 等,它们取决于该窗体的尺寸。如果在调整大小时想要保持图形的大小与窗体的大小成比例,可在一个 Resize 事件中通过使用 Refresh 方法调用 Paint 事件。任何时候只要 AutoRedraw 属性被设置为 False 而且窗体被调整大小,Visual Basic 也会按 Resize 和 Paint 的顺序调用相关的事件。当给这些相关事件附加过程时,要确保它们的操作不会互相冲突。当一个 OLE 容器控件的 SizeMode 属性被设置为 2(自动调大小)时,该控件自动根据所显示的包含于该控件之中的对象的大小来调整其大小。如果所显示的对象的大小发生变化,则该控件自动重调其大小以适应该对象的变化。当这种情况出现时,为该对象调用 Resize 事件会在 OLE 容器控件被重调大小之前发生。height 和 width 部分指示该对象显示的最佳大小(这个尺寸由创建该对象的应用程序决定)。可通过在 Resize 事件中改变 height 和 width 部分的值来按不同的尺寸设定控件的大小。
      

  7.   

    窗口与鼠标的消息挂钩(hook)那么鼠标产生的消息窗口就能收到后再处理自已想作的事
      

  8.   

    http://www.dapha.net/soure/menu/Mmc.zip
    代码名称 SendMessage使用技术  
    代码类型 菜单技术 
    运行环境 VB6.0/Win9x 
    授权方式 免费代码 
    代码大小 2K 
    代码评价  
    上传时间 2001-11-4 
    相关链接 主页 
    本日下载 1  本周:110  总计:110 
    下载地址1 下载 
    代码简介 咦,这个程序代码一点特殊性都没有啊!怎么回事?在窗器关闭,最大化,最小化上右击鼠标瞧瞧.哈哈终于发现....
    这个代码演示了SendMessage的使用技巧,有点绝
      

  9.   

    zyl910(910:分儿,我来了!) :
    你好!请问你的高招是如何学来的?!
    有什么好教材请推荐一些可以吗?