<address id="xpjh9"><listing id="xpjh9"><meter id="xpjh9"></meter></listing></address>

<address id="xpjh9"><address id="xpjh9"><listing id="xpjh9"></listing></address></address>
<noframes id="xpjh9">
<noframes id="xpjh9">

<address id="xpjh9"><address id="xpjh9"><listing id="xpjh9"></listing></address></address>
    <form id="xpjh9"></form><address id="xpjh9"><listing id="xpjh9"><menuitem id="xpjh9"></menuitem></listing></address>

      <noframes id="xpjh9">
      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
      相關教程
      江苏快3 辽阳 | 图木舒克 | 鄂州 | 泗洪 | 南通 | 大连 | 邳州 | 大庆 | 漯河 | 镇江 | 遂宁 | 株洲 | 汕尾 | 日喀则 | 平顶山 | 遵义 | 延边 | 赣州 | 咸宁 | 三明 | 霍邱 | 湖北武汉 | 鹤岗 | 巴中 | 临汾 | 台北 | 楚雄 | 仁怀 | 清远 | 晋江 | 扬中 | 海西 | 德州 | 黔西南 | 安岳 | 曹县 | 安岳 | 通化 | 阿克苏 | 和田 | 六安 | 湘西 | 自贡 | 开封 | 玉溪 | 吐鲁番 | 单县 | 上饶 | 赣州 | 衢州 | 林芝 | 辽宁沈阳 | 宿迁 | 塔城 | 黄山 | 宿州 | 汕尾 | 辽宁沈阳 | 钦州 | 巢湖 | 眉山 | 周口 | 宁国 | 德清 | 石河子 | 如皋 | 甘肃兰州 | 葫芦岛 | 瑞安 | 仁寿 | 咸宁 | 烟台 | 嘉兴 | 威海 | 金昌 | 德宏 | 诸暨 | 广元 | 潍坊 | 诸城 | 果洛 | 香港香港 | 山西太原 | 乐山 | 海拉尔 | 启东 | 丹阳 | 佳木斯 | 黔西南 | 包头 | 任丘 | 德阳 | 石河子 | 阿坝 | 焦作 | 中山 | 酒泉 | 曲靖 | 禹州 | 河南郑州 | 宜昌 | 济宁 | 吉林 | 洛阳 | 永新 | 眉山 | 和县 | 武夷山 | 嘉峪关 | 鄂州 | 伊春 | 泰安 | 新泰 |