簡單啊
創(chuàng)新互聯(lián)專注于二連浩特網站建設服務及定制,我們擁有豐富的企業(yè)做網站經驗。 熱誠為您提供二連浩特營銷型網站建設,二連浩特網站制作、二連浩特網頁設計、二連浩特網站官網定制、成都微信小程序服務,打造二連浩特網絡公司原創(chuàng)品牌,更為您提供二連浩特網站排名全網營銷落地服務。
第一個問題
在鼠標的 move事激櫻件里面 得到鼠標的坐標點,然后更改label的,left 和top屬性。具體的值你自己去算。
第二個問題
其實跟地一次差不多,擾鉛瞎只不過過加個標記,判斷鼠標是否在按鈕上進行了點擊操作,鼠標按下時變成TRUE 然后也是在鼠標緩空MOVE的時候,更改按鈕的坐標點。當鼠標彈起的時候將這個標記置換成FALSE
回答完畢
很簡單,通過WindowsAPI,刪除窗體菜單項就行了
首先在窗體類中聲明API:
Declare Function GetSystemMenu Lib "user32" (ByVal hWnd As IntPtr, ByVal bRevert As Boolean) As IntPtr
Declare Function RemoveMenu Lib "啟鍵user32" (ByVal lngHmenu As IntPtr, ByVal nPosition As Integer, ByVal wFlags As Integer) As Integer
其次聲明API參數(shù)常量:
Const MF_BYPOSITION As Integer = H400
然后在窗體類中寫入過程:
Private Sub UserForm_Initialize_stopmove() '禁止窗體移動
? Dim lngHwnd As IntPtr
? Dim lngHmenu As IntPtr
? lngHwnd = Me.Handle
? If lngHwnd 0 Then
? ? ? lngHmenu = GetSystemMenu(lngHwnd, False)
? ? ? RemoveMenu(lngHmenu, 0, MF_BYPOSITION) '這里的0代表菜單中從上往下數(shù)第一個菜單項
? End If
End Sub
Private Sub UserForm_Initialize_onmove() '恢復窗體移動
? Dim lngHwnd As IntPtr
? Dim lngHmenu As IntPtr
? lngHwnd = Me.Handle
? If lngHwnd 0 Then
? ? ? lngHmenu = GetSystemMenu(lngHwnd, True)
RemoveMenu(lngHmenu, 0, MF_BYPOSITION) '這里的0與禁止代碼中的數(shù)值同步,原模旁穗因時雖然表面上刪除了菜單項,實則為隱藏了菜單項,各個菜單的索引值并沒有變,所以0依然代表初始菜單的第一個菜單項,即被刪旦卜除的那個菜單項
? End If
End Sub
然后如果你的窗口菜單是動態(tài)變化的,建議聲明常數(shù):
Const MF_BYPOSITION As Integer = H0
然后使用相關的Windows功能的常數(shù)進行刪除菜單。常數(shù)需要自行查看winuser.h頭文件
如果找不到該頭文件,可以看這里:網頁鏈接
其余信息詳見MSDN:網頁鏈接
最后說一下,不建議前面網友說的重寫WndProc的方法,因為這樣攔截標題欄點擊消息會導致窗體本身的菜單也無法顯示出來,有損窗體功能,并且像雙擊左上角圖標關閉窗體這樣的功能也會跟著攔截消息的操作一起被吞掉。
調用api
在Visual Baisc點虐 中的聲明:
Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
Public Const MOUSEEVENTF_LEFTDOWN = H2 '知穗虛模擬鼠標左鍵按下
Public Const MOUSEEVENTF_LEFTUP = H4 ’模擬鼠標左鍵釋放
Public Const MOUSEEVENTF_MIDDLEDOWN = H20 '模擬鼠標中間鍵按下
Public Const MOUSEEVENTF_MIDDLEUP = H40 '模擬鼠標中間鍵族睜釋放
Public Const MOUSEEVENTF_RIGHTDOWN = H8 '模擬鼠標右鍵按下
Public Const MOUSEEVENTF_RIGHTUP = H10 '模擬鼠標右鍵釋放
Public Const MOUSEEVENTF_MOVE = H1 '模擬鼠標指針移動搭燃
例:
mouse_event MOUSEEVENTF_LEFTDOWN,10,10,0,0
'在(10,10)模擬鼠標左鍵按下
新建一窗體FORM2,在念含原窗體FORM1的在中賣mousemove事件賣高逗中增加FORM2.left=XX,FORM2.TOP=YY.XX,yy是鼠標的坐標.