欧美性猛交黑人xxxx,成人毛片一区二区三区,久久综合九色综合精品,男的把j放进女人下面视频免费

VB中使窗體右上角的X按鈕失效

  • 發布于:2023-12-09
  • 190 人圍觀
  為了學習方便,下面先給出源碼,并且已經作了詳細的中文注釋:

-------------------------------------------
使窗體右上角的X按鈕失效
-------------------------------------------
程序說明:
本例利用API函數GetSystemMenu得到系統菜單的句柄
X按鈕是系統菜單的一菜單項,然后用RemoveMenu函數
刪去這一菜單項,也就是使X按鈕失效了。
-------------------------------------------
【VB聲明】

Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long

【說明】
取得指定窗口的系統菜單的句柄。在vb環境,“系統菜單”的正式名稱為“控制菜單”,即單擊窗口左上角的控制框時出現的菜單

【返回值】
Long,如執行成功,返回系統菜單的句柄;零意味著出錯。如bRevert設為TRUE,也會返回零(簡單的恢復原始的系統菜單)

【備注】
在vb里使用:系統菜單會向窗口發送一條WM_SYSCOMMAND消息,而不是WM_COMMAND消息

【參數表】
hwnd ----------- Long,窗口的句柄

bRevert -------- Long,如設為TRUE,表示接收原始的系統菜單

Private Declare Function GetSystemMenu Lib "user32" ( _
ByVal hwnd As Integer, _
ByVal bRevert As Integer _
) As Integer

【VB聲明】

Private Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long

【說明】
刪除指定的菜單條目。如刪除的條目屬于一個彈出式菜單,那么這個函數不會同時刪除彈出式菜單。首先應該用GetSubMenu函數取得彈出式菜單的句柄,再在以后將其刪除

【返回值】
Long,非零表示成功,零表示失敗。會設置GetLastError

【備注】
強烈建議大家使用vb菜單的visible屬性從菜單中刪除條目,而不要用這個函數,否則會造成指定菜單中其他菜單條目的visible屬性對錯誤的菜單條目產生影響

【參數表】
hMenu ---------- Long,菜單的句柄

nPosition ------ Long,欲改變的菜單條目的標識符。如在wFlags參數中指定了MF_BYCOMMAND,這個參數就代表欲改變的菜單條目的命令ID。如設置的是MF_BYPOSITION,這個參數就代表菜單條目在菜單中的位置(第一個條目的位置為零)

wFlags --------- Long,常數MF_BYCOMMAND或MF_BYPOSITION,取決于nPosition參數

Private Declare Function RemoveMenu Lib "user32" ( _
ByVal hMenu As Integer, _
ByVal nPosition As Integer, _
ByVal wFlags As Integer _
) As Integer

Private Sub Command1_Click()
Unload Me
End Sub

Private Sub Form_Load()
Dim R As Integer
MyMenu = GetSystemMenu(Me.hwnd, 0)
RemoveMenu MyMenu, &HF060, R
End Sub

  程序中用到了兩個API函數GetSystemMenu、RemoveMenu,其中GetSystemMenu函數用來得到系統菜單的句柄,RemoveMenu用來刪除指定的菜單條目,我們先來看看這個函數的聲明和參數:

   Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long

   Private Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
其中各GetSystemMenu參數的意義如下表:

參數 意義
hwnd Long 系統菜單所在窗口的句柄
bRevert Long 如設為TRUE,表示恢復原始的系統菜單
返回值 Long 如執行成功,返回系統菜單的句柄;零意味著出錯。如bRevert設為TRUE,也會返回零(簡單的恢復原始的系統菜單)

  而RemoveMenu參數的意義如下表:

參數 意義
hMenu Long 菜單的句柄
nPosition Long 欲改變的菜單條目的標識符。如在wFlags參數中指定了MF_BYCOMMAND,這個參數就代表欲改變的菜單條目的命令ID。如設置的是MF_BYPOSITION,這個參數就代表菜單條目在菜單中的位置(第一個條目的位置為零)
wFlags Long 常數MF_BYCOMMAND=&H0&或MF_BYPOSITION=&H400&,取決于nPosition參數
返回值 Long,非零表示成功,零表示失敗

  然后就可以在程序中使用這兩個函數了,我們在窗體的Form_Load()過程中加入如下代碼:

   MyMenu = GetSystemMenu(Me.hwnd,0)    得到系統菜單的句柄,Me.hwnd表示當前窗體的句柄

   RemoveMenu MyMenu, &HF060, MF_BYCOMMAND 移去“關閉”菜單項,&HF060“關閉”菜單項的命令ID

  接著我們運行程序,看看窗體右上角的X按鈕是不是已經不可點擊了,系統菜單中的“關閉”項也消失了,很有趣,不過一定記著為程序留一個“退出”按鈕哦!

萬企互聯
標簽: