Windows 编程基础

八、键盘输入 返回

 

 键盘是计算机的标准配置,正确的指法是微机操作的基础,看着一行行文字轻快地在指下流淌,就仿佛“梵婀岭上奏着的名曲”;

 

 下面我们通过一个例子来学习怎样编写键盘程序:

 

 1、键盘上包括字母键和控制键,标准键盘可以产生255个大小写字母、标点符号的字符代码,称为ASCII(“阿斯科码”)

 

 这对于英文来说,足以完成大多数文字录入,但是对于成千上万的汉字来说,二百多个是远远不够的,因此汉字用两个ASCII码表示(一个汉字占两个字节),现在汉字编码有GB-2312以及GBK大字符集等等;

 

 2、当我们按下键盘时,首先由键盘检查所按的键,然后发送按键的代码给系统,由于各个国家的键盘代码不同,

 

 系统会把代码转换为标准代码ANSI字符集,还记得WinMain函数中的一句TranslateMessage(&msg)吧,然后再把按键消息发送给应用程序;

 

 3、启动VC,新建一个名为KeyWin32 Application工程,再新建一个相同名称的头文件源程序文件,在头文件中输入函数的申明,在源程序中输入窗口框架代码;

 

 4、接下来加入键盘消息的处理过程(绿色双斜杠部分是注释),有的一行太长会自动折到下一行,代码如下:

 

LRESULT APIENTRY MainWndProc(
    HWND hWnd,
//窗口句柄
    UINT u
Message,//消息类型
   
WPARAM wParam,//消息附带信息
   
LPARAM lParam)//消息附带信息
{
    HDC hdc;
//设备描述表句柄
    static int i,j;//控制字符显示位置的行,列的坐标
    P
AINTSTRUCT ps;//包含画图操作各种信息的结构

    switch(uMessage)
    {
   
case W
M_CHAR://键盘消息
        switch (wParam)//键盘字符的ASCII码
        {
        case 0x0D:
//回车键的代码
            j=j+20;//下一行
            i=0;//从行首开始输入
            break;
        default://默认的处理
            InvalidateRect(hWnd,NULL,F
ALSE);//更新屏幕区域,原来的不擦除
            char text[1]={TCH
AR(wParam)};//将字符存入数组中,数组有两个字符空间
            text[1]='\0';//第二个字符为结束标志 
            i=i+10;//下一个字符的位置

            hdc=BeginPaint(hWnd,&ps); 
            TextOut(hdc,20+i,50+j,text,1);
//只显示第一个字符,结束标志不显示
            EndPaint(hWnd,&ps);
        }
        break;
//字符消息结束

 

        case WM_PAINT://窗口初始化显示一行提示字符串
              hdc=BeginPaint(hWnd,&ps);
            TextOut(hdc,30,30,"请按键盘输入英文字符:",lstrlen("请按键盘输入英文字符:"));
            EndPaint(hWnd,&ps);

            break;

        case W
M_DESTROY: //请求退出窗口和应用程序
            PostQuit
Message(0);//发送一条WM_QUIT消息,
            break;
        default:
            return (DefWindowProc(hWnd,u
Message,wParam,lParam));
    }
    return(0);

}//消息处理函数结束


 处理消息的过程先在窗口当中显示一行提示,当按下键盘按键后,就会获得按键ASCII码,再换成字符,然后显示到窗口用户区,当按下回车键时,将显示位置移到下一行的行首;

 

 保存一下文件,单击编译条上的“构建”按钮,如果出现错误就仔细检查一下,然后单击“执行”按钮,输入一段英文字母看一看程序的执行效果;

 

 本节学习了用键盘输入文字到程序窗口的代码设计,如果你成功地完成了练习,请继续学习下一课内容;

返回

 

 心灵手巧 (在弹出的对话框中选择“运行”、“运行”)

 

附:常用ASCII码表

 

ASCII

键盘

ASCII

键盘

ASCII

键盘

ASCII

键盘

27

ESC

32

SPACE

33

!

34

"

35

#

36

$

37

%

38

&

39

'

40

(

41

)

42

*

43

+

44

'

45

-

46

.

47

/

48

0

49

1

50

2

51

3

52

4

53

5

54

6

55

7

56

8

57

9

58

:

59

;

60

61

=

62

63

?

64

@

65

A

66

B

67

C

68

D

69

E

70

F

71

G

72

H

73

I

74

J

75

K

76

L

77

M

78

N

79

O

80

P

81

Q

82

R

83

S

84

T

85

U

86

V

87

W

88

X

89

Y

90

Z

91

[

92

\

93

]

94

^

95

_

96

`

97

a

98

b

99

c

100

d

101

e

102

f

103

g

104

h

105

i

106

j

107

k

108

l

109

m

110

n

111

o

112

p

113

q

114

r

115

s

116

t

117

u

118

v

119

w

120

x

121

y

122

z

123

{

124

|

125

}

126

 

 

本教程由86团学校TeliuTe制作|著作权所有

基础教程网:http://teliute.org/

美丽的校园……



转载和引用本站内容,请保留作者和本站链接。