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

simaqingtian 2012-02-20 10:10:49
原文在这,查找“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

...全文
298 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
东方之珠 2012-03-06
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 simaqingtian 的回复:]
引用 5 楼 chenjl1031 的回复:
引用楼主 simaqingtian 的回复:
原文在这,查找“lMsg = X / Screen.TwipsPerPixelX '屏幕横向(X)分辨率
”的地方
http://apps.hi.baidu.com/share/detail/21642255

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

……
[/Quote]
这叫定点弹出菜单。
simaqingtian 2012-03-06
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 chenjl1031 的回复:]
引用楼主 simaqingtian 的回复:
原文在这,查找“lMsg = X / Screen.TwipsPerPixelX '屏幕横向(X)分辨率
”的地方
http://apps.hi.baidu.com/share/detail/21642255

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

Private Sub Form_MouseM……
[/Quote]

可为什么 517 就是右键啊 这个517是坐标值啊 跟右键有啥关系? 还是不明白啊
东方之珠 2012-02-22
  • 打赏
  • 举报
回复
[Quote=引用楼主 simaqingtian 的回复:]
原文在这,查找“lMsg = X / Screen.TwipsPerPixelX '屏幕横向(X)分辨率
”的地方
http://apps.hi.baidu.com/share/detail/21642255

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

Private Sub Form_MouseMove(Button As Integer, S……
[/Quote]
程序的意思是: 先取得鼠相对于窗体所在的X座标(像素为单位),当鼠标按住右键移动的过程中,然后判断这个座标是否等于517(即WM_RBUTTONUP),若等于517则弹出菜单(看你的运气了).
simaqingtian 2012-02-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 runnerchin 的回复:]
lMsg的结果是像素,X的值是鼠标的x轴值,单位是缇,
lMsg = X / Screen.TwipsPerPixelX 的意思是,把鼠标的以缇为单位的x值,除以 screen.twipsperpixelx(x轴上,每像素有多少缇),得到的就是像素为单位的结果
[/Quote]

55 你还是没回答我的问题啊

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

X-i-n 2012-02-21
  • 打赏
  • 举报
回复
lMsg的结果是像素,X的值是鼠标的x轴值,单位是缇,
lMsg = X / Screen.TwipsPerPixelX 的意思是,把鼠标的以缇为单位的x值,除以 screen.twipsperpixelx(x轴上,每像素有多少缇),得到的就是像素为单位的结果
X-i-n 2012-02-21
  • 打赏
  • 举报
回复
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Button判断按了哪个鼠标键
Shift判断按了哪个辅助功能键(shift=1,ctrl=2,alt=4,两键或者三键一起按时,直接取和)
X,Y是鼠标的位置(以 缇 为单位)
X-i-n 2012-02-21
  • 打赏
  • 举报
回复
判断鼠标右键的是 Button这个整型变量……
按钮 button值
左 1
右 2
中 4

1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧