国产一二三四在线观看,欧美黑人粗硬大在线看,一级毛片在线看在线播放,精品外国呦系列在线观看,日本aa大片在线播放免费看,亚洲产国偷v产偷v自拍自拍,99精品久久99久久久久久

操干學妹 我們知道在一些程序中有一些快

    ?我們知道,在一些程序中,有一些快捷方式(如:shift鍵最小化、esc鍵退出、ctrl+s存盤、alt+x退出等等)。以前有一些介紹使用in32api可以做到,但過于繁瑣,其實vb本身已經(jīng)給我們提供了這個功能。

    我們來新建一個窗體form1,對于鍵盤操作可以看到有三個事件keypress,keydon和keyup,下面我對它們分別介紹:

    keypress事件是當用戶按下和松開一個ansi鍵時發(fā)生(ansi是可見ascii字符1-127)。

    語法

    privatesubobject_keypress([ieger,]keyasteger)

    keypress事件語法包含下列部分:

    部分描述

    object一個對象表達式,其值是“應用于”列表中的一個對象。

    index一個整數(shù),它用來唯一標識一個在控件數(shù)組中的控件(僅有控件數(shù)組時才有)。

    keyascii是返回一個標準數(shù)字ansiyascii通過引用傳遞,對它進行改變可給對象

    發(fā)送一個不同的字符。將keyascii改變?yōu)?時可取消擊鍵,這樣一來對象便接收不到字符。

    說明

    具有焦點的對象接收該事件。一個窗體僅在keyprevie屬性被設置為true時才能接收該事件。一個keypress事件可以引用任何可打印的鍵盤字符,一個來自標準字母表的字符或少數(shù)幾個特殊字符之一的字符與ctrl鍵的組合,以及enterypress事件過程在截取textbox或bobox控件所輸入的擊鍵時是非常有用的。它可立即測試擊鍵的有效性或在字符輸入時對其進行格式處理。改變keyascii參數(shù)的值會改變所顯示的字符。

    可使用下列表達式將keyascii參數(shù)轉(zhuǎn)變?yōu)橐粋€字符:

    chr(keyascii)

    然后執(zhí)行字符串操作,并將該字符反譯成一個控件可通過該表達式解釋的ansi數(shù)字:

    keyascii=asc(char)

    在keypress處理不了的功能可以由keydon和keyup事件來處理:

    語法

    privatesubobject_keydon([ieger,]keycodeinteger,shiftinteger)

    privatesubobject_keyup([ieger,]keycodeinteger,shiftinteger)

    keydon和keyup事件包括下列部分:

    部分描述

    object一個對象表達式,其值是“應用于”列表中的一個對象。

    index是一個整數(shù),它用來唯一標識一個在控件數(shù)組中的控件(僅有控件數(shù)組時才有)。

    keycode是一個鍵代碼,諸如vbkeyf1(鍵)或vbkeyhome(home鍵)。

    shift是在該事件發(fā)生時響應shift,ctrl和altft、ctrl、alt鍵在這些位分別對應于值1、2和4。例如:如果ctrl和alt這兩個鍵都被按下,則shift的值為6。

    說明

    對于這兩個事件來說,帶焦點的對象都接收所有擊鍵。一個窗體只有在不具有可視的和有效的控件時才可以獲得焦點。雖然keydon和keyup事件可應用于大多數(shù)鍵,它們最經(jīng)常地還是應用于:擴展的字符鍵如功能鍵、定位鍵、鍵盤修飾鍵和按鍵的組合、區(qū)別數(shù)字小鍵盤和常規(guī)數(shù)字鍵;在需要對按下和松開一個鍵都響應時,可使用keydon和keyup事件過程。

    下列情況不能引用keydon和keyup事件:窗體有一個mandbutton控件,并且default屬性設置為true時的enter鍵。窗體有一個mandbutton控件,并且cel屬性設置為true時的esc鍵、tab鍵,keydon和keyup用兩種參數(shù)解釋每個字符的大寫形式和小寫形式:keycode—顯示物理的鍵(將a和a作為同一個鍵返回)和shift—顯示shift+key鍵的狀態(tài)而且返回a或a其中之一。

    如果需要測試shift參數(shù),可使用該參數(shù)中定義各位的shift常數(shù)。該常數(shù)有下列值:

    常數(shù)值描述

    vbshiftmask1hift鍵的位

    屏蔽。

    vbctrlmask2ctrl鍵的

    位屏蔽。

    vbaltmask4alt鍵的位

    屏蔽。

    該常數(shù)用作位屏蔽,它可被用來測試任何鍵組合。

    注意:如果keyprevie屬性被設置為true,則一個窗體先于該窗體上的控件接收到此事件。可用keyprevie屬性來創(chuàng)建全局鍵盤處理例程。

    了解了以上知識,我們可以制作出非常完美而且?guī)в锌旖萱I的程序,例如我們在一個程序中要用ctrl+s存盤,shift最小化,alt+x和esc退出:

    首先啟動vb選擇新建exe文件,在form1窗體上拉一個textbox,并把form1的keyprevie屬性設為true,雙擊form1,選擇form的keypress事件,輸入如下代碼:

    privatesubform_keypress(keyasteger)esc鍵退出,vbescape可以用27代替

    keyascii=vbescapethenend

    endsub

    在form的keydon事件中輸入如下代碼:

    privatesubform_keydon(keycodeinteger,shiftinteger)處理ctrl+x,shift,alt+x

    shift=2andkeycode=vbkeysthenprint#filenum,ctrl+s存盤,vbkeys=83

    shift==1shift最小化

    shift=4andkeycode=vbkeyxthenendalt+x退出,vbkeyx=88

    endsub

    在form的load事件中輸入如下代碼:

    privatesubform_load

    dimfilenuminteger

    filenum=freefil+“\“forappend#filenum

    endsub

    運行它就可以實現(xiàn)我們所要求的功能了,舉這個例子只是拋磚引玉的作用,利用它我們還可以編寫