a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 115|回复: 1

[Visual Basic] 2011年计算机等考二级VB辅导知识技巧总结(28)

[复制链接]
发表于 2012-7-31 22:10:12 | 显示全部楼层 |阅读模式
 用VB、VFP设计右键弹出式菜单  导读:凡是用过WINDOWS95或WINDOWS98的用户,非常熟悉单击鼠标右键会出现一个弹出式菜单,那么如何在应用系统中也实现上述功能,增加用户界面的友善性。笔者分别用VB和VFP实现了用鼠标右键实现弹出式菜单的效果。
  X/ ~' t! K- S8 {! U" x4 e  用VISUAL BASIC6.0实现弹出式菜单。
6 z. L6 f+ [9 ~# y6 ^) t# Z. z  建立含有如下控件的窗体:
: m3 z% \4 Y- H! a2 R3 \  控件NAME CAPTION INDEX
+ T" c$ l  p5 ~& M7 N  弹出式菜单窗体FORMENU 弹出式窗口实例1. i! C  B8 |7 j  K. N
  菜单项MENUS 编辑
, p, ?( h' F& A2 v( V: j  P4 G  子菜单项MENUS1 窗口移动0# K1 P; `% M0 P# \
  子菜单项MENUS1 窗口最小化1
1 P- j3 s6 K; }5 y- C, L3 g! J  子菜单项MENUS1 窗口最大化2
" O" a  m3 ~' h6 Y6 J  子菜单项MENUS1 - 3 &&分割线/ e# r3 ^0 P. W' g% B/ x
  子菜单项MENUS1 退出4
& g' t# ?+ c2 t; T* E  (2)程序清单:
0 \& w0 m/ T! I/ G' C  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
- F; s1 P' T* f: k4 S  Private Const WM_SYSCOMMAND = &H112
, N' O6 i) e* ~2 W  Private Const SC_MOVE = &HF010&
2 ^8 P$ ^& p. u  Private Const SC_MINIMIZE = &HF020&5 [. i0 n( i8 @. q; L" [. e+ [- g5 N
  Private Const SC_MAXIMIZE = &HF030& >5 I* O) a- k/ G$ _) d# p  Q
  Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
' G, \  p8 E5 d2 ~0 N- n8 D  If Button = 2 Then
# w/ N# u2 ~; W  Me.PopupMenu FORMENU!MENUS  }  `) ^5 ]$ v# O
  End If% w3 e+ ^( i, ]3 i  q: W' p  ~
  End Sub
回复

使用道具 举报

 楼主| 发表于 2012-7-31 22:10:13 | 显示全部楼层

2011年计算机等考二级VB辅导知识技巧总结(28)

Private Sub MENUS1_Click(Index As Integer)  Dim X As Long& S/ ~* ^  P0 Y7 K( q- L
  Select Case Index
4 x' d1 `9 {) S/ s  Case 0! B  A3 Z+ E/ R/ Z' r. \
  X = SendMessage((FORMENU.hwnd), WM_SYSCOMMAND, SC_MOVE, 0&)0 e3 H- |0 K2 W2 K6 }4 w
  Case 1
. L, g* U" W/ e9 w% E/ Y6 m3 H  X = SendMessage((FORMENU.hwnd), WM_SYSCOMMAND, SC_MINIMIZE, 0&): X! |  p0 [' @6 k6 a3 [: P) f
  Case 2
3 g/ t. }8 t- f0 \6 ~: r  X = SendMessage((FORMENU.hwnd), WM_SYSCOMMAND, SC_MAXIMIZE, 0&)
+ {: X! B$ [1 X: Y; V" f  Case 3
+ o7 E* K5 ]1 o3 ~! m  Case 4
/ i' E, B5 v( I0 ^4 b3 l- ]  Unload FORMENU' p  R4 r' D5 h' f, L, Y% `+ S" P; j
  End Select3 {! l& }8 r" L' j3 k
  End Sub
7 ]+ p4 [( J. k" ]( k  用VISUAL FOXPRO 6.0实现弹出式菜单。
6 u7 t7 x3 `. B1 Y' z8 \! t  建立含有如下控件的窗体POPMENU.SPR:
1 |2 r+ w  ~* B  控件NAME CAPTION
& P" h* `" A2 j  窗体FORM1 弹出式菜单实例2
! O0 i  @4 F* {) U  命令按钮COMMAND1 单击鼠标右键演示弹出式菜单
2 q3 M+ N% d) Y7 m( t  (2)建立弹出式菜单MENUS.MPR:0 I7 E% \2 F0 ?5 y0 A
  菜单项窗口移动
; _9 }7 `7 s0 d3 P3 g  菜单项窗口最小化* X; x( g% V. P7 m2 {3 x- b
  菜单项窗口最大化
+ M  j/ V, }, S6 {- E! `% U  在COMMAND1控件的RIGHTCLICK事件中输入:" y2 O. B: d- r
  DO MENUS.MPR &&调用弹出式菜单# H+ Q; y3 {8 A& r/ r
  运行环境:WINDOWS98,VISUAL BASIC 6.0、VISUAL FOXPRO 6.0 FOR WINDOWS.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-18 08:21 , Processed in 0.282822 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表