高压电警棒专卖店:SendMessage 实现vb、vfb 制作右击菜单(转)
- 用VISUAL BASIC6.0实现弹出式菜单。
- 建立含有如下控件的窗体:
控件NAME CAPTION INDEX
弹出式菜单窗体FORMENU 弹出式窗口实例1
菜单项MENUS 编辑
子菜单项MENUS1 窗口移动0
子菜单项MENUS1 窗口最小化1
子菜单项MENUS1 窗口最大化2
子菜单项MENUS1 - 3 &&分割线
子菜单项MENUS1 退出4
图1
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const WM_SYSCOMMAND = &H112
Private Const SC_MOVE = &HF010&
Private Const SC_MINIMIZE = &HF020&
Private Const SC_MAXIMIZE = &HF030& >
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 2 Then
Me.PopupMenu FORMENU!MENUS
End If
End Sub
Private Sub MENUS1_Click(Index As Integer)
Dim X As Long
Select Case Index
Case 0
X = SendMessage((FORMENU.hwnd), WM_SYSCOMMAND, SC_MOVE, 0&)
Case 1
X = SendMessage((FORMENU.hwnd), WM_SYSCOMMAND, SC_MINIMIZE, 0&)
Case 2
X = SendMessage((FORMENU.hwnd), WM_SYSCOMMAND, SC_MAXIMIZE, 0&)
Case 3
Case 4
Unload FORMENU
End Select
End Sub
图2
- 建立含有如下控件的窗体POPMENU.SPR:
控件NAME CAPTION
窗体FORM1 弹出式菜单实例2
命令按钮COMMAND1 单击鼠标右键演示弹出式菜单
(2)建立弹出式菜单MENUS.MPR:
菜单项窗口移动
菜单项窗口最小化
菜单项窗口最大化
- 在COMMAND1控件的RIGHTCLICK事件中输入:
DO MENUS.MPR &&调用弹出式菜单
运行环境:WINDOWS98,VISUAL BASIC 6.0、VISUAL FOXPRO 6.0 FOR WINDOWS.
笔者