首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

“lMsg = X / Screen.TwipsPerPixelX”这句是什么意思?该怎么解决

2013-01-05 
“lMsg X / Screen.TwipsPerPixelX”这句是什么意思?原文在这,查找“lMsg X / Screen.TwipsPerPixelX 屏

“lMsg = X / Screen.TwipsPerPixelX”这句是什么意思?
原文在这,查找“lMsg = X / Screen.TwipsPerPixelX '屏幕横向(X)分辨率
”的地方
http://apps.hi.baidu.com/share/detail/21642255

【问题】不明白这个lMsg得到分辨率什么的跟按鼠标右键有啥关系?怎么能判断的?

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim MenuOpen As Menu
Set MenuOpen = Form2.Menu
Dim lMsg As Single
lMsg = X / Screen.TwipsPerPixelX '屏幕横向(X)分辨率
If lMsg = WM_RBUTTONUP Then PopupMenu MenuOpen,0 '右健单击弹出菜单(菜单要自己去编辑)
If lMsg = WM_LBUTTONUP Then
Call Shell_NotifyIcon(NIM_DELETE, nfIconData) '左键单击卸载托盘图标
Me.Show                                       '同时显示窗体
End if 
End Sub

[解决办法]
lMsg的结果是像素,X的值是鼠标的x轴值,单位是缇,
lMsg = X / Screen.TwipsPerPixelX  的意思是,把鼠标的以缇为单位的x值,除以  screen.twipsperpixelx(x轴上,每像素有多少缇),得到的就是像素为单位的结果
[解决办法]

引用:
原文在这,查找“lMsg = X / Screen.TwipsPerPixelX '屏幕横向(X)分辨率
”的地方
http://apps.hi.baidu.com/share/detail/21642255

【问题】不明白这个lMsg得到分辨率什么的跟按鼠标右键有啥关系?怎么能判断的?

Private Sub Form_MouseMove(Button As Integer, S……

程序的意思是: 先取得鼠相对于窗体所在的X座标(像素为单位),当鼠标按住右键移动的过程中,然后判断这个座标是否等于517(即WM_RBUTTONUP),若等于517则弹出菜单(看你的运气了).

热点排行