VB判斷鼠標位置
劉玉蓉
發(fā)布于2014-10-13 17:38
1
0
標簽:
使用WINCC庫中的閥門、電機等圖標,單擊他們彈出操作的對話框,現(xiàn)在的問題是彈出的對話框是在鼠標點擊的位置附近出來,但是點擊監(jiān)控畫面邊緣的圖標時發(fā)現(xiàn),彈出的對話框超出了畫面的邊緣,還得用鼠標拖拽回來,(因為是改造項目,原制作者在PLC中的地址不規(guī)律,無法用結構變量,只能把閥門的操作對話框逐一制作出來,我使用VB程序加畫面窗口做的,)程序如下:
Sub MouseDown(ByVal Item, ByVal Button, ByVal Shift, ByVal x, ByVal y)
Dim PIC
Set PIC = ScreenItems("畫面窗口1")""""""""""""""""選擇畫面窗口
ScreenItems.Item("畫面窗口1").PICTURENAME="閥門號"
PIC.Visible = False
PIC.Left = item.Left+10
PIC.Top = item.Top
ScreenItems("畫面窗口1").Visible = True
End Sub
我對VB不怎么懂,希望能給在這個程序后加個判斷鼠標點擊位置的VB程序,使得彈出的對話框不會超出屏幕的邊緣!
佳答案
試試這個全局函數(shù)吧 希望對你有幫助
你只需修改DialogName參數(shù)
Sub ShowDialog(Byval DialogName,Byval x,Byval y)
""""對話框顯示位置自動調整函數(shù)函數(shù)
""""鼠標事件按左鍵事件中調用
""""DialogName為要顯示對象的名稱 x,y為鼠標點擊的位置(鼠標左鍵事件中調用直接為X,Y)
""""例:Call ShowDialog("1號鼓風機放空氣閥_Dialog",x,y)
""""by:逐漸變暈
Dim PageWidth,PageHeight,DiaWidth,DiaHeight,PX,PY,Constval
Constval=30 """"調整顯示對話框距離鼠標點擊點距離
PageWidth=HMIRuntime.Screens ("").Width
PageHeight =HMIRuntime.Screens ("").Height
DiaWidth=ScreenItems(DialogName).Width
DiaHeight=ScreenItems(DialogName).Height
px=x+Constval
PY=y+Constval
If x+DiaWidth+Constval >=PageWidth Then
PX=x-Constval*2-DiaWidth
End If
If y+DiaHeight+Constval >=PageHeight Then
PY=y-Constval*2-DiaHeight
End If
ScreenItems(DialogName).Left=PX
ScreenItems(DialogName).Top=PY
ScreenItems(DialogName).Visible = True
End Sub
Sub EndDialog(Byval DialogName)
Dim PageWidth
PageWidth=HMIRuntime.Screens ("").Width
ScreenItems(DialogName).Left=ScreenItems(DialogName).Left+PageWidth
End Sub