Control消息处理参考

Public   Class  Control
    
Inherits  Component
    
Implements  IOleControl, IOleObject, IOleInPlaceObject, IOleInPlaceActiveObject, IOleWindow, _
                IViewObject, IViewObject2, IPersist, IPersistStreamInit, IPersistPropertyBag, IPersistStorage, _
                IQuickActivate, ISupportOleDropSource, IDropTarget, ISynchronizeInvoke, IWin32Window, _
                IArrangedElement, IBindableComponent, IComponent, IDisposable

    
< SecurityPermission(SecurityAction.InheritanceDemand, Flags: = SecurityPermissionFlag.UnmanagedCode), _
    SecurityPermission(SecurityAction.LinkDemand, Flags:
= SecurityPermissionFlag.UnmanagedCode) >  _
    
Protected   Overridable   Sub  WndProc( ByRef  m  As  Message)
        
If  (( Me .controlStyle  And  ControlStyles.EnableNotifyMessage)  =  ControlStyles.EnableNotifyMessage)  Then
            
Me .OnNotifyMessage(m)
        
End   If
        
Select   Case  m.Msg
            
Case   1
                
Me .WmCreate((m))
                
Return
            
Case   2
                
Me .WmDestroy((m))
                
Return
            
Case   3
                
Me .WmMove((m))
                
Return
            
Case   7
                
Me .WmSetFocus((m))
                
Return
            
Case   8
                
Me .WmKillFocus((m))
                
Return
            
Case   15
                
If   Not   Me .GetStyle(ControlStyles.UserPaint)  Then
                    
Me .DefWndProc((m))
                    
Return
                
End   If
                
Me .WmPaint((m))
                
Return
            
Case   & H10
                
Me .WmClose((m))
                
Return
            
Case   20
                
Me .WmEraseBkgnd((m))
                
Return
            
Case   & H18
                
Me .WmShowWindow((m))
                
Return
            
Case   & H19,  & H132,  & H133,  & H134,  & H135,  310 & H137,  & H138,  & H2132,  & H2133,  & H2134,  & H2135,  & H2136,  & H2137,  & H2138,  & H2019
                
Me .WmCtlColorControl((m))
                
Return
            
Case   & H20
                
Me .WmSetCursor((m))
                
Return
            
Case   & H2B
                
Me .WmDrawItem((m))
                
Return
            
Case   & H2C
                
Me .WmMeasureItem((m))
                
Return
            
Case   & H2D,  & H2E,  & H2F,  & H39,  & H114,  & H115
                
If   Not  Control.ReflectMessageInternal(m.LParam, (m))  Then
                    
Me .DefWndProc((m))
                
End   If
                
Return
            
Case   70
                
Me .WmWindowPosChanging((m))
                
Return
            
Case   & H47
                
Me .WmWindowPosChanged((m))
                
Return
            
Case   & H3D
                
Me .WmGetObject((m))
                
Return
            
Case   & H100,  & H101,  & H102,  260 & H105
                
Me .WmKeyChar((m))
                
Return
            
Case   & H7E
                
Me .WmDisplayChange((m))
                
Return
            
Case   & H4E
                
Me .WmNotify((m))
                
Return
            
Case   80
                
Me .WmInputLangChangeRequest((m))
                
Return
            
Case   & H51
                
Me .WmInputLangChange((m))
                
Return
            
Case   & H53
                
Me .WmHelp((m))
                
Return
            
Case   & H55
                
Me .WmNotifyFormat((m))
                
Return
            
Case   & H7B
                
Me .WmContextMenu((m))
                
Return
            
Case   & H10D
                
Me .WmImeStartComposition((m))
                
Return
            
Case   270
                
Me .WmImeEndComposition((m))
                
Return
            
Case   & H111
                
Me .WmCommand((m))
                
Return
            
Case   & H112
                
If  ((( CInt (m.WParam)  And   & HFFF0)  <>   & HF100)  OrElse   Not  ToolStripManager.ProcessMenuKey((m)))  Then
                    
Me .DefWndProc((m))
                    
Return
                
End   If
                m.Result 
=  IntPtr.Zero
                
Return
            
Case   & H117
                
Me .WmInitMenuPopup((m))
                
Return
            
Case   & H11F
                
Me .WmMenuSelect((m))
                
Return
            
Case   & H120
                
Me .WmMenuChar((m))
                
Return
            
Case   & H128
                
Me .WmUpdateUIState((m))
                
Return
            
Case   & H200
                
Me .WmMouseMove((m))
                
Return
            
Case   & H201
                
Me .WmMouseDown((m), MouseButtons.Left,  1 )
                
Return
            
Case   & H202
                
Me .WmMouseUp((m), MouseButtons.Left,  1 )
                
Return
            
Case   & H203
                
Me .WmMouseDown((m), MouseButtons.Left,  2 )
                
If   Me .GetStyle(ControlStyles.StandardDoubleClick)  Then
                    
Me .SetState( & H4000000,  True )
                
End   If
                
Return
            
Case   & H204
                
Me .WmMouseDown((m), MouseButtons.Right,  1 )
                
Return
            
Case   & H205
                
Me .WmMouseUp((m), MouseButtons.Right,  1 )
                
Return
            
Case   & H206
                
Me .WmMouseDown((m), MouseButtons.Right,  2 )
                
If   Me .GetStyle(ControlStyles.StandardDoubleClick)  Then
                    
Me .SetState( & H4000000,  True )
                
End   If
                
Return
            
Case   & H207
                
Me .WmMouseDown((m), MouseButtons.Middle,  1 )
                
Return
            
Case   520
                
Me .WmMouseUp((m), MouseButtons.Middle,  1 )
                
Return
            
Case   & H209
                
Me .WmMouseDown((m), MouseButtons.Middle,  2 )
                
If   Me .GetStyle(ControlStyles.StandardDoubleClick)  Then
                    
Me .SetState( & H4000000,  True )
                
End   If
                
Return
            
Case   & H20A
                
Me .WmMouseWheel((m))
                
Return
            
Case   & H20B
                
Me .WmMouseDown((m),  Me .GetXButton(Util.HIWORD(m.WParam)),  1 )
                
Return
            
Case   & H20C
                
Me .WmMouseUp((m),  Me .GetXButton(Util.HIWORD(m.WParam)),  1 )
                
Return
            
Case   & H20D
                
Me .WmMouseDown((m),  Me .GetXButton(Util.HIWORD(m.WParam)),  2 )
                
If   Me .GetStyle(ControlStyles.StandardDoubleClick)  Then
                    
Me .SetState( & H4000000,  True )
                
End   If
                
Return
            
Case   & H210
                
Me .WmParentNotify((m))
                
Return
            
Case   530
                
Me .WmExitMenuLoop((m))
                
Return
            
Case   & H215
                
Me .WmCaptureChanged((m))
                
Return
            
Case   & H282
                
Me .WmImeNotify((m))
                
Return
            
Case   & H2A1
                
Me .WmMouseHover((m))
                
Return
            
Case   & H2A3
                
Me .WmMouseLeave((m))
                
Return
            
Case   & H30F
                
Me .WmQueryNewPalette((m))
                
Return
            
Case   & H286
                
Me .WmImeChar((m))
                
Return
            
Case   & H2055
                m.Result 
=   IIf ((Marshal.SystemDefaultCharSize  =   1 ),  DirectCast ( 1 , IntPtr),  DirectCast ( 2 , IntPtr))
                
Return
            
Case   & H318
                
If   Me .GetStyle(ControlStyles.UserPaint)  Then
                    
Me .WmPrintClient((m))
                    
Return
                
End   If
                
Me .DefWndProc((m))
                
Return
        
End   Select
        
If  ((m.Msg  =  Control.threadCallbackMessage)  AndAlso  (m.Msg  <>   0 ))  Then
            
Me .InvokeMarshaledCallbacks()
        
ElseIf  (m.Msg  =  Control.WM_GETCONTROLNAME)  Then
            
Me .WmGetControlName((m))
        
ElseIf  (m.Msg  =  Control.WM_GETCONTROLTYPE)  Then
            
Me .WmGetControlType((m))
        
Else
            
If  (Control.mouseWheelRoutingNeeded  AndAlso  (m.Msg  =  Control.mouseWheelMessage))  Then
                
Dim  none  As  Keys  =  Keys.None
                none 
=  (none  Or   IIf ((UnsafeNativeMethods.GetKeyState( & H11)  <   0 ),  8 0 ))
                none 
=  (none  Or   IIf ((UnsafeNativeMethods.GetKeyState( & H10)  <   0 ),  4 0 ))
                
Dim  handle  As  IntPtr  =  UnsafeNativeMethods.GetFocus
                
If  (handle  =  IntPtr.Zero)  Then
                    
Me .SendMessage(m.Msg,  DirectCast ((( CInt ( CLng (m.WParam))  <<   & H10)  Or  none), IntPtr), m.LParam)
                
Else
                    
Dim  zero  As  IntPtr  =  IntPtr.Zero
                    
Dim  desktopWindow  As  IntPtr  =  UnsafeNativeMethods.GetDesktopWindow
                    
Do   While  (((zero  =  IntPtr.Zero)  AndAlso  (handle  <>  IntPtr.Zero))  AndAlso  (handle  <>  desktopWindow))
                        zero 
=  UnsafeNativeMethods.SendMessage( New  HandleRef( Nothing , handle),  & H20A,  CInt ((( CInt ( CLng (m.WParam))  <<   & H10)  Or  none)), m.LParam)
                        handle 
=  UnsafeNativeMethods.GetParent( New  HandleRef( Nothing , handle))
                    
Loop
                
End   If
            
End   If
            
If  (m.Msg  =  NativeMethods.WM_MOUSEENTER)  Then
                
Me .WmMouseEnter((m))
            
Else
                
Me .DefWndProc((m))
            
End   If
        
End   If
    
End Sub

End Class
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要下载Robust Control Toolbox(鲁棒控制工具箱),可以按照以下步骤进行操作: 1. 打开MathWorks官方网站,该网站是Robust Control Toolbox的发行商。在主页上,可以看到一个搜索栏。 2. 在搜索栏中输入“Robust Control Toolbox”。然后,点击“搜索”按钮。 3. 在搜索结果中,找到Robust Control Toolbox的相关页面。通常,页面名称会注明版本号和发布日期。 4. 点击相关页面。这将带你进入Robust Control Toolbox的官方页面。 5. 在页面上,你可以找到有关Robust Control Toolbox的详细信息、功能和系统要求。例如,操作系统版本和MATLAB版本等。 6. 在页面上,会提供有关购买Robust Control Toolbox的选项和价格。如果你已经购买了许可证,可以直接点击“下载”按钮。 7. 点击“下载”按钮后,会弹出一个文件下载对话框。根据对话框中的指示,选择保存文件的位置,并确认开始下载。 8. 下载完成后,找到保存的文件并双击打开。这将启动自动安装程序。 9. 按照安装程序中的指示,完成Robust Control Toolbox的安装过程。在安装过程中,可能需要提供一些许可证信息。 10. 安装完成后,可以在MATLAB软件中找到Robust Control Toolbox的相关函数和工具。可以在MATLAB命令窗口中输入相应的函数名,或者在工具栏中找到相关的图标。 以上便是关于Robust Control Toolbox下载的步骤。根据你的实际需求和意图,可以根据上述步骤获得Robust Control Toolbox,并在MATLAB中应用该工具箱进行鲁棒控制的相关工作。 ### 回答2: Robust Control Toolbox(鲁棒控制工具箱)是MATLAB中的一个工具箱,用于设计和分析在存在不确定性的情况下的控制系统。该工具箱提供了一些先进的设计和分析工具,以帮助工程师在设计和优化鲁棒控制系统时处理不确定性。 要下载Robust Control Toolbox,可以按照以下步骤操作: 1. 首先,确保您已经安装了MATLAB软件。Robust Control Toolbox是MATLAB的一个附加工具箱,而非独立的软件。 2. 登录到MathWorks官方网站。MathWorks是MATLAB的开发商,提供了Robust Control Toolbox的下载。 3. 在MathWorks网站上,搜索Robust Control Toolbox。您可以使用网站的搜索功能,或者在主菜单中找到"产品",然后在产品列表中找到Robust Control Toolbox。 4. 点击Robust Control Toolbox的下载链接。您需要具备一个有效的MathWorks账户才能下载该工具箱。如果您还没有账户,那么您需要先注册一个。 5. 选择适合您的操作系统的版本。根据您使用的操作系统选择相应的版本进行下载。Robust Control Toolbox支持Windows、Mac和Linux操作系统。 6. 点击下载按钮开始下载。下载速度会根据您的网络连接速度和文件大小而有所不同。请耐心等待下载完成。 7. 完成下载后,找到下载文件并双击进行安装。按照安装程序的指引完成安装过程。 8. 安装完成后,打开MATLAB软件,进入工具箱视图,您应该能够看到已经安装了Robust Control Toolbox。 通过按照以上步骤,您就可以成功下载和安装Robust Control Toolbox,并开始使用其中的功能来设计和分析鲁棒控制系统。如果您在使用过程中遇到问题,您可以参考官方文档或者向MATLAB的技术支持团队寻求帮助。 ### 回答3: Robust Control Toolbox是一款由MathWorks开发的MATLAB工具箱,它专门用于设计和分析鲁棒控制系统。该工具箱提供了一系列功能强大的工具和算法,帮助工程师和研究人员在控制系统设计中考虑不确定性和扰动。 要下载Robust Control Toolbox,首先需要安装MATLAB软件。在安装MATLAB时,可以选择将Robust Control Toolbox包括在内,也可以在安装完MATLAB后通过“附加产品”进行安装。 下载Robust Control Toolbox的步骤如下: 1. 打开已安装的MATLAB软件。 2. 在主界面的工具栏上,找到“添加-Ons”按钮,并单击打开。 3. 在弹出的添加-Ons对话框中,选择“获取新Add-Ons”选项卡。 4. 在搜索框中输入“Robust Control Toolbox”并点击搜索按钮。 5. 在搜索结果中找到“Robust Control Toolbox”并点击“获取”按钮。 6. 等待下载和安装完成。下载速度取决于网络连接和计算机性能。 7. 下载和安装完成后,可以在MATLAB的工具栏上找到已安装的Robust Control Toolbox,并通过单击打开它。 安装完Robust Control Toolbox后,用户就可以开始使用其中的各种功能。该工具箱提供了许多工具和函数,用于分析鲁棒性能、设计控制器、评估系统稳定性等。通过Robust Control Toolbox,用户可以更好地应对不确定性和扰动,提供更可靠、稳健的控制系统设计。 总之,下载Robust Control Toolbox是通过MathWorks官方网站或在MATLAB软件中完成的。使用Robust Control Toolbox可以提供专业而全面的鲁棒控制系统设计与分析工具,以满足工程师和研究人员的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值