? vb.net亚博优惠活动之Visual Basic .NET子类化的实现 亚博优惠活动,亚博体育网页版,亚博app怎么下载「官网直营」
VB.net 2010 视频亚博优惠活动 VB.net 2010 视频亚博优惠活动 VB.net 2010 视频亚博优惠活动
SQL Server 2008 视频亚博优惠活动 c#入门经典亚博优惠活动 Visual Basic从门到精通视频亚博优惠活动
当前位置:
首页 > 编程开发 > VBnet >
  • vb.net亚博优惠活动之Visual Basic .NET子类化的实现

  • 2015-01-24 13:35 来源:未知
Visual Basic .NET子类化的实现(相关vb.net亚博优惠活动)
.NET中使用子类化技术要比VB6中简单,因为微软在.NET中已经提供了接口,不需要我们再自己SetWindowLong了,我们做的是Overrides(覆盖) WndProc过程即可。
Overrides Protected Sub WndProc( ByRef m As Message )参数m实现了Windows的消息类型。
下面的例子将演示如何将About加入窗口的系统菜单。
①创建工程
创建一个VB.NET的Windows Application工程。
②录入代码
Public Class Form1
?
??? Inherits System.Windows.Forms.Form
?
??? '中间隐去了.NET自动生成的代码
??? ' – 引用Win32Api
??? Private Declare Function GetSystemMenu Lib "user32" (ByVal hWnd As IntPtr, ByVal bRevert As Int32) As Int32
??? Private Declare Function InsertMenu Lib "user32" Alias "InsertMenuA" (ByVal hMenu As Int32, ByVal nPosition As Int32, ByVal wFlags As Int32, ByVal wIDNewItem As Int32, ByVal lpNewItem As String) As Int32
?
??? Private Const MF_BYCOMMAND = &H0&
??? Private Const MF_BYPOSITION = &H400&
??? Private Const MF_STRING = &H0&
??? Private Const MF_SEPARATOR = &H800&
??? Private Const WM_SYSCOMMAND = &H112
?
??? Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
?
??????? InsertMenu(GetSystemMenu(Me.Handle, False), 0, MF_BYPOSITION Or MF_SEPARATOR, 2001, "") '加入一条分割线
?
??????? 'GetSystemMenu(Me.Handle, False)是得到系统菜单的句柄,第二个参数为True的话不能改变系统菜单,所以要设为False
??????? InsertMenu(GetSystemMenu(Me.Handle, False), 0, MF_BYPOSITION Or MF_STRING, 2002, "About Me(&A)") '加入About me菜单在系统菜单中
?
??? End Sub
?
??? Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
??????? '类化窗口--覆盖WndProc过程
?
??????? If m.Msg = WM_SYSCOMMAND Then
??????????? If m.WParam.ToInt32 = 2002 Then
??????????????? MsgBox("About Context", vbInformation, "About...")
??????????? End If
??????? End If
?
??????? '调用窗口默认的处理过程
??????? MyBase.WndProc(m)
?
??? End Sub
?
End Class
4. 小结
  子类化技术可以让我们实现一些使用VB在正常条件下无法完成的任务,而且通过这些技术可以更为深入的学习Windows编程,成为VB
相关亚博优惠活动