《《鼠标键盘菜单》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《鼠标键盘菜单》PPT课件.ppt(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第10章章 键盘事件、鼠标事件、菜单键盘事件、鼠标事件、菜单 主要内容:键盘与鼠标事件过程键盘与鼠标事件过程KeyPress事件KeyDown、KeyUp鼠标事件鼠标光标的形状菜单程序设计菜单程序设计VB中的菜单菜单编辑器建立菜单弹出式菜单KeyPress事件1、Keypress事件事件:此事件当用户按下和松开一个键盘上的键时发生。格式:格式:PrivateSub控件名_KeyPress(indexAsInteger,keyasciiAsInteger)说明:说明:可用于窗体、文本框、复选框、组合框、命令按钮、列表框、图片框、滚动条等具有焦点的控件。Keyascii参数的值是被按下的键的AS
2、CII值。它是以值为准,它是以值为准,比如:按下大键盘上的1和按下小键盘上的1都返回1的Ascii码,按下同一个键,但在大小写不同时,返回不同的值。一个窗体仅在它没有可视的且可获得焦点的控件时才能接收该事件。但是当窗体的KeyPreview 属性被设置为True时,窗体是可以接收该事件的,但不影响其它控件的KeyPress事件的接收。例如:窗体上有一个文本框,当KeyPreview 属性被设置为True时,在文本框中输入数据,每一次按键,都会先触发窗体的Keypress事件,再触发控件的Keypress事件。一个KeyPress事件可以引用任何可打印的键盘字符可使用Chr(KeyAscii)表
3、达式将keyascii参数转变为一个字符。使用这下面命令修改KeyAscii参数的值将改变所显示的字符:KeyAscii=Asc(char)此事件不能识别下面的这些键:功能键(F1-F12)、编辑键(指INSERT键、DELETE键或BACKSPACE键)、定位键以及任何键和键盘换档键的组合等。KeyPress事件2、举例:例1:将输入到文本框中的字符转换为大写。PrivateSubText1_KeyPress(KeyAsciiAsInteger)KeyAscii=Asc(UCase(Chr(KeyAscii)EndSubKeyDown、KeyUp事件1、KeyDown和和KeyUp事件:事件
4、:是当一个对象具有焦点时按下(KeyDown)或松开(KeyUp)一个键时发生的。格式:格式:PrivateSub控件名_KeyDown(indexAsInteger,keycodeAsInteger,shiftAsInteger)PrivateSub控件名_KeyUp(indexAsInteger,keycodeAsInteger,shiftAsInteger)说明:说明:indexAsInteger,:当控件为控件数组时有此参数。表示被触发控件的索引号。keycodeAsInteger:是一个键代码。l它是一个Ascii码,但是它是以键为准,一个键一个码但是它是以键为准,一个键一个码,例如
5、:A和a是同一个值,以大写字母的Ascii值为准。l由于是以键为准,所以,大键盘和小键盘上的数字键并不是同一值,例如:大键盘的1和小键盘的1不同值。l对于有上下档的键,以下档键的值为准。shiftAsInteger:是在该事件发生时响应SHIFT,CTRL和ALT键的状态的一个整数。分别是1、2和4。例如,如果CTRL和ALT这两个键都被按下,则shift的值为6。KeyDown、KeyUp事件例:例:当按下“”键时,窗体上的滚动条的滚动块被移动。lPrivateSubHScroll1_KeyDown(KeyCodeAsInteger,ShiftAsInteger)lIfKeyCode=188
6、AndHScroll1.ValueHScroll1.MinThenlHScroll1.Value=HScroll1.Value-HScroll1.LargeChangelEndIflIfKeyCode=190AndHScroll1.ValueHScroll1.MaxThenlHScroll1.Value=HScroll1.Value+HScroll1.LargeChangelEndIflEndSubl在程序中,首先要测试按下的键是不是“”,并且要考虑是否滚动框处于最高或最低的位置,然后进行滚动条值属性的修改,在当前Value值上增加或者减少。例:例:当按下Alt+P显示照片,当放手时关闭显示。
7、lPrivateSubForm_Load()lForm1.KeyPreview=TruelEndSublPrivateSubForm_KeyDown(KeyCodeAsInteger,ShiftAsInteger)lIfKeyCode=80AndShift=4ThenlImage1.Visible=TruelEndIflEndSublPrivateSubForm_KeyUp(KeyCodeAsInteger,ShiftAsInteger)lIfKeyCode=80AndShift=4ThenlImage1.Visible=FalselEndIflEndSub 鼠标事件1、鼠标的事件l按下鼠标事
8、件:格式:PrivateSubForm_MouseDown(ButtonAsInteger,_ShiftAsInteger,XAsSingle,YAsSingle)l松开鼠标事件:格式:PrivateSubForm_MouseUp(ButtonAsInteger,_ShiftAsInteger,XAsSingle,YAsSingle)l移动鼠标事件:格式:PrivateSubForm_MouseMove(ButtonAsInteger,_ShiftAsInteger,XAsSingle,YAsSingle)l上面的事件用于大多数控件,例如:窗体、复选框、命令按钮、单选按钮、框架、文本框、目录框
9、、文件框、图像框、图片框、标签。鼠标事件2、鼠标事件的参数:lButton:事件发生时触发事件的鼠标键的值,此参数有3个值:常数(按钮)值描述vbLeftButton1左按钮被按下vbRightButton2右按钮被按下vbMiddleButton4中间按钮被按下lShift:鼠标触发事件的同时键盘上Ctrl、Shift、Alt键的状态。此参数的值和Keydown、Keyup事件中的Shift参数一样的解释,可以组合。常数(换挡)值描述vbShiftMask1SHIFT键被按下vbCtrlMask2CTRL键被按下vbAltMask4ALT键被按下lx、y:鼠标触发事件时鼠标的坐标。鼠标事件3
10、、举例:例1:在鼠标的箭头所指过的地方画上彩色小圆圈。画以x,y为圆心画出指定色号的圆:窗体名.Circle(x,y),半径,色号此程序应该完成的是:当鼠标移动时,使用Circle方法绘制圆。圆的圆心为鼠标所指位置。lPrivateSubForm_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)lForm1.Circle(X,Y),100,RGB(Int(Rnd*256),Int(Rnd*256),Int(Rnd*256)lEndSubVB中的菜单1、菜单、菜单分类:下拉式菜单:典型的窗口式菜单弹出式菜单:鼠标器右键单击
11、后弹出的快捷菜单菜单编辑器1、进入菜单编辑器、进入菜单编辑器l进入菜单编辑器有4种方法:执行“工具”菜单中的“菜单编辑器”命令使用热键Ctrl+E使用工具栏中的“菜单编辑器”按钮在设计阶段,在窗体上单击鼠标右键,出现的快捷菜单上有“菜单编辑器”命令l菜单编辑器分为3个区:上半部分为数据区,中间为编辑区,下半部分为菜单项显示区。建立菜单l菜单编辑器的用法:1、建立简单菜单:、建立简单菜单:界面设计2、编写菜单代码:、编写菜单代码:首先在窗体的设计状态下,单击要编写代码的菜单项。弹出式菜单l除了下拉式菜单,除了下拉式菜单,Windows还经常使用弹出式还经常使用弹出式菜单,几乎在每个对象上单击鼠标器右键都会出菜单,几乎在每个对象上单击鼠标器右键都会出现弹出式的快捷菜单。现弹出式的快捷菜单。l建立弹出式菜单的步骤:建立弹出式菜单的步骤:使用菜单编辑器编辑菜单,在主菜单中的菜单名的可见属性设置为false。在需要弹出弹出式菜单的事件过程中使用PopupMenu方法l一般来说,在程序中,通常把PopupMenu方法放在对象的MouseDown事件中。此事件可以根据事件参数区分鼠标左右键的按下。例:菜单菜单
限制150内