国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

在系統菜單上添加自定義菜單項

在系統菜單上添加自定義菜單項

更新時間:2022-05-07 文章作者:未知 信息來源:網絡 閱讀次數:

作者:馬鞍山鋼鐵總公司職工大學 王加龍

---- 本文題目所說的系統菜單不是指應用程序系統的菜單,而是指當用戶用鼠標左鍵單擊應用程序窗體左上角的圖標時彈出的菜單。同樣,當用戶用鼠標右鍵單擊應用程序窗體的標題欄,或系統任務欄中的應用程序標題時,彈出的也是這個菜單。系統菜單與應用程序菜單不一樣,系統菜單不受應用程序控制,它是由Windows系統直接控制的。因此,在系統菜單上添加自定義菜單項,就顯得比較困難。以下便是本人利用VB實現在系統菜單上添加自定義菜單項的方法。

---- 首先需要知道一點是系統菜單的工作過程。當我們單擊系統菜單中某一項時,應用程序窗口會收到一條WM_SYSCOMMAND消息,該消息包含了系統菜單中所單擊那一項的標識符ID。此時,應用程序窗口的默認窗口函數會根據WM_SYSCOMMAND消息以及菜單標識符ID執行相應的操作,完成菜單命令。如果我們能攔截到達窗口的WM_SYSCOMMAND消息,并且識別出菜單的標識符ID,我們就能夠在系統菜單上添加自己的菜單項,并且執行指定的動作。下面的例子就是在系統菜單上添加一條分隔符和"關于…"菜單項。

---- 啟動Visual Basic,新建標準EXE工程,在工程中添加一標準模塊,名稱可以是默認的。在標準模塊的聲明部分加入下列代碼:

'菜單API函數聲明
Public Declare Function GetSystemMenu Lib "user32"
(ByVal hwnd As Long, ByVal bRevert As Long) As Long
Public Declare Function AppendMenu Lib "user32" Alias
"AppendMenuA" (ByVal hMenu As Long, ByVal wFlags As Long,
ByVal wIDNewItem As Long, ByVal lpNewItem As Any) As Long
'菜單API函數常數聲明
Public Const MF_BYCOMMAND = &H0&
Public Const MF_SEPARATOR = &H800&
Public Const MF_STRING = &H0&
'有關窗口函數的API函數聲明
Public Declare Function SetWindowLong Lib
"user32" Alias "SetWindowLongA" (ByVal hwnd
As Long, ByVal nIndex As Long, ByVal
dwNewLong As Long) As Long
Public Declare Function CallWindowProc Lib "user32"
Alias "CallWindowProcA" (ByVal lpPrevWndFunc
As Long, ByVal hwnd As Long, ByVal Msg As Long,
ByVal wParam As Long, ByVal lParam As Long) As Long
Public Declare Function DefWindowProc Lib
"user32" Alias "DefWindowProcA" (ByVal
hwnd As Long, ByVal wMsg As Long,
ByVal wParam As Long, ByVal lParam As Long) As Long
'消息
Public Const GWL_WNDPROC = (-4)
Public Const WM_NCLBUTTONDOWN = &HA1
Public Const WM_NCRBUTTONDOWN = &HA4
Public Const WM_USER = &H400
Public Const WM_SYSCOMMAND = &H112
Public Const HTSYSMENU = 3
Public Const HTCAPTION = 2
'自定義菜單項的標識號偏移量
Public Const IDM_SEPARATOR = 1
Public Const IDM_MYABOUT = 2
'其他變量
Dim sHwnd As Long
Dim OldProc As Long

接著可向標準模塊添加下面兩個過程:
Public Sub AddMenu(frm As Form)
'置換窗口函數過程

sHwnd = frm.hwnd
OldProc = SetWindowLong(frm.hwnd,
GWL_WNDPROC, AddressOf AddCallBack)

End Sub

Public Sub Release()
'釋放自定義窗口函數過程

SetWindowLong sHwnd, GWL_WNDPROC, OldProc

End Sub

最后向標準模塊中添加一自定義窗口函數過程:
Public Function AddCallBack(ByVal hwnd As Long,
ByVal wMsg As Long, ByVal wParam As Long,
ByVal lParam As Long) As Long
Select Case wMsg
Case WM_SYSCOMMAND '系統消息
Select Case wParam '測試
Case WM_USER + IDM_MYABOUT '
"關于..."菜單項
'此處可加入用戶需要自己處理
"關于…"菜單項的代碼
MsgBox "單擊了添加的菜單條目", vbOKOnly
Case Else '其它菜單項交換系統處理
AddCallBack = DefWindowProc(hwnd,
wMsg, wParam, lParam)
End Select
Exit Function
Case Else
AddCallBack = CallWindowProc(OldProc,
hwnd, wMsg, wParam, lParam)
End Select

End Function
關閉標準模塊的代碼窗口,
打開窗體的代碼窗口,
在Form_Load()過程中加入下列代碼:
'加載自定義窗口過程
AddMenu Me
'獲得系統菜單的句柄
Dim hMenu As Long
hMenu = GetSystemMenu(Me.hwnd, 0)
'在系統菜單中添加自定義2條菜單項
AppendMenu hMenu, MF_SEPARATOR
Or MF_BYCOMMAND,
IDM_SEPARATOR, vbNullString
'分隔符
AppendMenu hMenu, MF_BYCOMMAND
Or MF_STRING,
WM_USER + IDM_MYABOUT, "關于..."
'
"關于…"菜單項
在Form_Unload過程中加入下列代碼:
Release '釋放自定義窗口過程

---- 到此,代碼的輸入工作完成,接下來的是進行測試。單擊啟動按鈕或按F5,啟動工程,用鼠標單擊窗體左上角的圖標彈出系統菜單,看看是否如愿。千萬要注意的一點是,在結束工程時,一定要用窗體右上角的關閉按鈕或者系統菜單中的關閉菜單項,否則的話,會造成Visual Basic系統崩潰,出現非法操作的錯誤,所以在測試工程前,最好對工程進行保存。
---- 以上程序在Windows95,Visual Basic6.0環境下調試通過。 

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

  • <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        欧美性猛交xxxx黑人交 | 国产成人免费xxxxxxxx| 日韩欧美视频一区| 久热成人在线视频| 久久久欧美精品sm网站| 91丨国产丨九色丨pron| 午夜亚洲国产au精品一区二区 | 99精品视频一区二区三区| 亚洲精品国产成人久久av盗摄| 91麻豆精品视频| 麻豆精品在线看| 亚洲视频综合在线| 欧美一区二区三区日韩视频| 国产一区二区中文字幕| 亚洲视频狠狠干| wwww国产精品欧美| 欧美在线色视频| 国内外成人在线视频| 亚洲愉拍自拍另类高清精品| 精品国产露脸精彩对白| 在线观看亚洲a| 国产·精品毛片| 午夜视频一区二区| 国产精品久久久久久亚洲伦| 8x福利精品第一导航| kk眼镜猥琐国模调教系列一区二区| 午夜久久久久久电影| 国产精品久久久久婷婷| 精品国产一区二区精华| 欧美剧情片在线观看| 97精品国产露脸对白| 狠狠色狠狠色综合日日91app| 亚洲色图视频网| 国产亚洲一二三区| 精品裸体舞一区二区三区| 欧洲一区在线电影| av毛片久久久久**hd| 国模一区二区三区白浆| 日韩高清电影一区| 一区二区三区在线视频免费观看| 久久久久高清精品| 亚洲精品在线电影| 精品三级av在线| 日韩免费电影网站| 日韩色视频在线观看| 欧美日韩高清一区二区| 欧美日韩小视频| 欧美精选在线播放| 在线综合+亚洲+欧美中文字幕| 欧美在线看片a免费观看| 在线亚洲免费视频| 一本到三区不卡视频| 成人免费高清在线观看| 国产91在线观看丝袜| 丁香天五香天堂综合| 国产激情一区二区三区桃花岛亚洲| 极品美女销魂一区二区三区 | 精品亚洲免费视频| 久久se这里有精品| 国产在线视频一区二区三区| 精品中文字幕一区二区小辣椒| 久久99国产精品尤物| 国产一区二区在线视频| 波多野结衣91| 欧美日韩色一区| 欧美一二三四在线| 久久久精品国产免费观看同学| 国产视频不卡一区| 亚洲免费大片在线观看| 激情另类小说区图片区视频区| 国产精品影视天天线| 不卡电影一区二区三区| 91丨九色丨蝌蚪富婆spa| 在线亚洲人成电影网站色www| 欧美视频一区二区三区四区 | 国产精品免费av| 亚洲日本va在线观看| 亚洲国产美女搞黄色| 裸体一区二区三区| 成人精品在线视频观看| 色婷婷国产精品综合在线观看| 欧美亚洲精品一区| 欧美精品一区二区三区四区 | 美国十次综合导航| 国产不卡一区视频| 欧美日韩午夜在线| 国产午夜精品一区二区三区视频 | 亚洲国产中文字幕在线视频综合 | 中文字幕亚洲成人| 亚洲第一久久影院| 国产成人精品免费网站| 欧美优质美女网站| 日本一区二区视频在线| 亚洲成人动漫一区| 成人免费福利片| 国产拍欧美日韩视频二区| 亚洲天堂成人在线观看| 激情综合色丁香一区二区| 91在线免费视频观看| 精品久久久久久综合日本欧美| 一区二区三区四区国产精品| 精品一区二区免费视频| 欧美色爱综合网| 国产精品久久久久久久久果冻传媒 | 欧美tk—视频vk| 亚洲蜜桃精久久久久久久| 黄色小说综合网站| 在线欧美日韩精品| 国产欧美精品一区| 久久99精品国产| 欧美一区二区三区色| 亚洲一区二区三区美女| 91日韩在线专区| 国产精品久久一级| 丁香六月综合激情| 国产亚洲综合性久久久影院| 日本视频一区二区| 欧美三区在线观看| 亚洲图片自拍偷拍| 欧美亚洲国产一区在线观看网站| 国产精品午夜电影| 成人激情校园春色| 国产精品美女久久久久久久久| 国产一区二区日韩精品| 日韩一级黄色大片| 老司机精品视频一区二区三区| 欧美精品三级在线观看| 日精品一区二区三区| 欧美三级日韩三级| 亚洲国产成人porn| 欧美日韩精品福利| 日韩av在线发布| 日韩片之四级片| 美女在线视频一区| 91精品国产一区二区| 毛片一区二区三区| 日韩免费在线观看| 激情图区综合网| 久久人人爽人人爽| 国产白丝精品91爽爽久久| 国产精品久久午夜| 91在线免费视频观看| 亚洲女女做受ⅹxx高潮| 91成人看片片| 毛片基地黄久久久久久天堂| 精品中文字幕一区二区小辣椒| 欧美xxxxx牲另类人与| 国产乱码精品一品二品| 日本一区二区高清| 91一区二区三区在线播放| 亚洲国产aⅴ成人精品无吗| 欧美日韩国产中文| 精品一区免费av| 国产精品毛片大码女人| 欧美日韩国产在线播放网站| 热久久久久久久| 欧美激情综合网| 欧美亚洲综合久久| 久久99久久久欧美国产| 国产免费成人在线视频| 在线观看不卡一区| 久久成人羞羞网站| 中文字幕一区二区日韩精品绯色| 欧美在线一区二区三区| 蜜桃视频在线观看一区二区| 国产精品无遮挡| 欧美精品免费视频| 99久久99久久精品免费看蜜桃| 亚洲一区电影777| 久久久亚洲精华液精华液精华液| 91麻豆蜜桃一区二区三区| 裸体一区二区三区| 亚洲视频在线一区观看| 久久先锋影音av鲁色资源网| 91老师国产黑色丝袜在线| 久久99精品久久久久久| 亚洲综合久久久久| 国产午夜一区二区三区| 日韩一二三区不卡| 日本大香伊一区二区三区| 国产91在线|亚洲| 日本sm残虐另类| 亚洲综合激情小说| 国产精品国产三级国产普通话99 | 欧美色综合久久| 粉嫩av亚洲一区二区图片| 麻豆中文一区二区| 亚洲一区二区视频在线| 亚洲色图欧洲色图婷婷| 国产亚洲短视频| 精品99999| 欧美电视剧在线看免费| 欧美色综合天天久久综合精品| 色综合亚洲欧洲| 成人免费毛片高清视频| 成人一区二区在线观看| 国产毛片精品视频| 精久久久久久久久久久| 精品一区二区免费| 九九国产精品视频|