新聞中心
vb點(diǎn)虐 label跟著鼠標(biāo)移動(dòng)
簡(jiǎn)單啊

創(chuàng)新互聯(lián)專注于二連浩特網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供二連浩特營(yíng)銷型網(wǎng)站建設(shè),二連浩特網(wǎng)站制作、二連浩特網(wǎng)頁(yè)設(shè)計(jì)、二連浩特網(wǎng)站官網(wǎng)定制、成都微信小程序服務(wù),打造二連浩特網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供二連浩特網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。
第一個(gè)問(wèn)題
在鼠標(biāo)的 move事激櫻件里面 得到鼠標(biāo)的坐標(biāo)點(diǎn),然后更改label的,left 和top屬性。具體的值你自己去算。
第二個(gè)問(wèn)題
其實(shí)跟地一次差不多,擾鉛瞎只不過(guò)過(guò)加個(gè)標(biāo)記,判斷鼠標(biāo)是否在按鈕上進(jìn)行了點(diǎn)擊操作,鼠標(biāo)按下時(shí)變成TRUE 然后也是在鼠標(biāo)緩空MOVE的時(shí)候,更改按鈕的坐標(biāo)點(diǎn)。當(dāng)鼠標(biāo)彈起的時(shí)候?qū)⑦@個(gè)標(biāo)記置換成FALSE
回答完畢
VB.NET怎么可以限制窗體不能被鼠標(biāo)隨便拖動(dòng)位置
很簡(jiǎn)單,通過(guò)WindowsAPI,刪除窗體菜單項(xiàng)就行了
首先在窗體類中聲明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
然后在窗體類中寫(xiě)入過(guò)程:
Private Sub UserForm_Initialize_stopmove() '禁止窗體移動(dòng)
? 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ù)第一個(gè)菜單項(xiàng)
? End If
End Sub
Private Sub UserForm_Initialize_onmove() '恢復(fù)窗體移動(dòng)
? 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ù)值同步,原模旁穗因時(shí)雖然表面上刪除了菜單項(xiàng),實(shí)則為隱藏了菜單項(xiàng),各個(gè)菜單的索引值并沒(méi)有變,所以0依然代表初始菜單的第一個(gè)菜單項(xiàng),即被刪旦卜除的那個(gè)菜單項(xiàng)
? End If
End Sub
然后如果你的窗口菜單是動(dòng)態(tài)變化的,建議聲明常數(shù):
Const MF_BYPOSITION As Integer = H0
然后使用相關(guān)的Windows功能的常數(shù)進(jìn)行刪除菜單。常數(shù)需要自行查看winuser.h頭文件
如果找不到該頭文件,可以看這里:網(wǎng)頁(yè)鏈接
其余信息詳見(jiàn)MSDN:網(wǎng)頁(yè)鏈接
最后說(shuō)一下,不建議前面網(wǎng)友說(shuō)的重寫(xiě)WndProc的方法,因?yàn)檫@樣攔截標(biāo)題欄點(diǎn)擊消息會(huì)導(dǎo)致窗體本身的菜單也無(wú)法顯示出來(lái),有損窗體功能,并且像雙擊左上角圖標(biāo)關(guān)閉窗體這樣的功能也會(huì)跟著攔截消息的操作一起被吞掉。
如何在VB點(diǎn)虐 中用程序控制鼠標(biāo)移動(dòng)和點(diǎn)擊
調(diào)用api
在Visual Baisc點(diǎn)虐 中的聲明:
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 '知穗虛模擬鼠標(biāo)左鍵按下
Public Const MOUSEEVENTF_LEFTUP = H4 ’模擬鼠標(biāo)左鍵釋放
Public Const MOUSEEVENTF_MIDDLEDOWN = H20 '模擬鼠標(biāo)中間鍵按下
Public Const MOUSEEVENTF_MIDDLEUP = H40 '模擬鼠標(biāo)中間鍵族睜釋放
Public Const MOUSEEVENTF_RIGHTDOWN = H8 '模擬鼠標(biāo)右鍵按下
Public Const MOUSEEVENTF_RIGHTUP = H10 '模擬鼠標(biāo)右鍵釋放
Public Const MOUSEEVENTF_MOVE = H1 '模擬鼠標(biāo)指針移動(dòng)搭燃
例:
mouse_event MOUSEEVENTF_LEFTDOWN,10,10,0,0
'在(10,10)模擬鼠標(biāo)左鍵按下
Vb.Net 怎么讓窗口隨鼠標(biāo)動(dòng)
新建一窗體FORM2,在念含原窗體FORM1的在中賣mousemove事件賣高逗中增加FORM2.left=XX,FORM2.TOP=YY.XX,yy是鼠標(biāo)的坐標(biāo).
本文標(biāo)題:vb點(diǎn)虐 鼠標(biāo)跟隨 vb 鼠標(biāo)
本文地址:http://m.biofuelwatch.net/article/ddpdieo.html


咨詢
建站咨詢
