国产午夜成人免费看片无遮挡_日本免费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>

        日韩一区二区三区在线| 日韩一区二区在线看片| 日韩1区2区日韩1区2区| 蜜桃av一区二区三区电影| 国产一区久久久| 91精品一区二区三区在线观看| 国产精品女同互慰在线看| 国产拍欧美日韩视频二区| 中文字幕一区不卡| 色天天综合久久久久综合片| 欧美日韩精品欧美日韩精品| 欧美成人性战久久| 亚洲视频在线观看一区| 久久99精品久久久久久久久久久久| 91免费视频网| www国产精品av| 五月婷婷欧美视频| 99久久精品免费看| 久久九九久精品国产免费直播| 亚洲va欧美va天堂v国产综合| www精品美女久久久tv| 一区二区三区在线影院| 1024成人网| 日韩成人精品视频| 国产精品入口麻豆九色| 亚洲制服丝袜av| 国产高清不卡二三区| 欧美日韩精品一区二区天天拍小说 | 国产欧美日韩在线| 日韩av午夜在线观看| 一本久道中文字幕精品亚洲嫩 | 欧美男同性恋视频网站| 自拍偷拍国产亚洲| 国产福利一区在线| 日韩精品中文字幕在线不卡尤物 | 色偷偷久久一区二区三区| 成人黄色一级视频| 欧美草草影院在线视频| 日韩高清在线不卡| 欧美日韩第一区日日骚| 亚洲一区二区三区视频在线播放| 91小宝寻花一区二区三区| 国产亚洲精品中文字幕| 久久99国产精品免费| 欧美一区二区人人喊爽| 免费高清视频精品| 午夜伦理一区二区| 欧美日韩久久久久久| 亚洲成人动漫一区| 欧美久久久久久蜜桃| 视频精品一区二区| 精品久久久久久综合日本欧美| 麻豆成人av在线| 久久综合999| 国产剧情av麻豆香蕉精品| 国产丝袜欧美中文另类| 国产.精品.日韩.另类.中文.在线.播放| 久久蜜桃av一区精品变态类天堂| 国内精品久久久久影院薰衣草 | 日韩视频不卡中文| 精品一区二区三区在线播放视频 | 精品一区二区三区蜜桃| 亚洲精品一区二区三区四区高清 | 国产高清不卡二三区| 国产午夜一区二区三区| 不卡电影免费在线播放一区| 亚洲精品免费一二三区| 欧美日本在线播放| 久久97超碰国产精品超碰| wwwwww.欧美系列| 成人avav影音| 亚洲国产一区二区在线播放| 7777精品伊人久久久大香线蕉经典版下载 | 日本午夜精品一区二区三区电影| 欧美一区二区三区视频在线| 国产一区二区三区久久悠悠色av| 国产精品视频观看| 欧美丰满少妇xxxxx高潮对白 | 久久久久久久久久美女| 99re这里只有精品视频首页| 亚洲a一区二区| 久久久精品免费观看| 在线观看亚洲专区| 精品在线播放午夜| 亚洲综合在线观看视频| 亚洲香肠在线观看| 日韩欧美国产wwwww| 99久久亚洲一区二区三区青草| 天天亚洲美女在线视频| 久久久综合精品| 在线视频国产一区| 国产在线播精品第三| 亚洲一区二区三区激情| 久久日韩精品一区二区五区| 色婷婷激情久久| 国精产品一区一区三区mba视频| 亚洲黄色在线视频| 久久综合狠狠综合久久激情| 欧美日韩一区成人| 成人av电影免费观看| 激情图片小说一区| 午夜视频一区在线观看| 综合久久给合久久狠狠狠97色| 日韩精品一区二区三区中文精品| 色综合一区二区| 国产精品99久久久久久久vr| 免费高清不卡av| 午夜免费久久看| 亚洲三级小视频| 国产午夜精品一区二区| 91精品国产综合久久精品性色| 在线观看成人免费视频| av午夜精品一区二区三区| 国产一区二区网址| 蜜臀久久99精品久久久久久9| 亚洲444eee在线观看| 亚洲色图.com| 中文字幕一区二区三区在线播放| 久久久久亚洲综合| 欧美精品一区二区三区视频| 日韩视频在线观看一区二区| 欧美日韩精品一区二区在线播放| 色中色一区二区| 91视频国产资源| 丁香婷婷综合五月| 风间由美一区二区av101| 国产乱码一区二区三区| 韩国欧美国产1区| 久久99国产精品成人| 麻豆精品久久精品色综合| 日韩av电影天堂| 青椒成人免费视频| 免费成人在线观看| 激情综合网激情| 国产主播一区二区| 国产精品亚洲成人| 粉嫩嫩av羞羞动漫久久久| 国产成人精品三级麻豆| 福利电影一区二区| 91亚洲精品一区二区乱码| 91视频观看免费| 欧美亚洲动漫精品| 91精品在线观看入口| 精品电影一区二区三区 | 久久精品免费看| 久久99精品国产91久久来源| 国产一区在线观看视频| 国产一区二区免费视频| 懂色av一区二区夜夜嗨| www国产成人| 中文字幕欧美三区| 亚洲蜜桃精久久久久久久| 亚洲一区二区三区四区在线观看 | 欧洲av一区二区嗯嗯嗯啊| 欧美亚洲尤物久久| 欧美一级国产精品| 国产三级精品在线| 亚洲欧美日韩国产成人精品影院| 亚洲电影一区二区三区| 青青草原综合久久大伊人精品优势 | 国产一区三区三区| 粉嫩嫩av羞羞动漫久久久 | 亚洲男人的天堂网| 午夜电影久久久| 国模大尺度一区二区三区| 成人黄色网址在线观看| 在线观看不卡一区| 日韩精品一区二区三区老鸭窝| 久久精品一区二区三区不卡牛牛 | 一区二区三区影院| 麻豆免费看一区二区三区| 国产成人精品一区二区三区网站观看| 91美女在线观看| 欧美一级国产精品| 亚洲日穴在线视频| 韩国一区二区视频| 欧美亚洲综合一区| 欧美韩国日本不卡| 午夜精品久久久久| 成人午夜看片网址| 777午夜精品免费视频| 国产女同互慰高潮91漫画| 亚洲高清免费视频| 成人免费视频视频在线观看免费| 欧美日韩日日夜夜| 国产女同性恋一区二区| 日本亚洲电影天堂| 色哟哟一区二区三区| 久久综合给合久久狠狠狠97色69| 亚洲自拍偷拍av| 风间由美一区二区av101| 欧美一级视频精品观看| 中文字幕一区二| 国产精品羞羞答答xxdd| 欧美一三区三区四区免费在线看| 亚洲靠逼com| 懂色av一区二区夜夜嗨| 亚洲精品在线观看网站| 日产国产欧美视频一区精品 | 亚洲欧洲美洲综合色网|