vc++(vs2010) windows编程与绘图程序设计(7)

2019-03-28 11:28

指定坐标的直线。 5.2 非静态对话框

5.3 通用对话框

6常用控件

6.1 公共控件 6.2 容器

6.3 数据控件

7 键盘鼠标事件

7.1键盘事件

为了使用户掌握键盘消息及其处理消息,介绍一个键盘消息处理实例。 1.实例说明

本实例通过工程向导创建一个单文档工程,在其中响应键盘的WM_KEYDOWN、WM_KEYUP、WM_CHAR消息,实现下面的功能:

当用户按下了Shift键,在视图窗口中显示提示信息“用户按下了Shift键”;

当用户释放了Shift键时,在视图窗口中显示提示信息“用户释放了Shift键!”;

当用户按下了Shift键后又按下了字符“B”键,在视图窗口中显示提示信息“用户同时按下了Shift键和B键”(即输入B键或b键)。 2.开发过程 (1)创建工程。

利用MFC AppWizard[EXE]建立一个单文档的MFC工程“KeyboardDemo”。

(2)在ClassView选项卡上用鼠标右键单击该类,并从弹出的快速

菜单中选择[Add Member Variable…]

菜单命令,为KeyboardDemoView类添加一个新的成员变量bShiftdown,将此成员变量的类型设置为BOOL,并将其访问权限设置为Private,

单击[OK]按钮,完成成员变量的添加操作。按照同样的方法,再添加2个BOOL型private成员变量bShiftup和bShiftB,

接下来在KeyboardDemoView构造函数中给三个指示变量赋初值”false”。代码如下:

CKeyboardDemoView::CKeyboardDemoView() {

bShiftdown=bShiftup=bShiftB=false;//赋初值 }

(3)利用“建立类向导”添加键盘消息及处理函数,步骤如下: 在”ClassName”列表框中,选择键盘消息的处理函数”CKeyboardDemoView”,在”Object IDs”列表框中选择“CKeyboardDemoView”,

则在“Message”列表框中,列出了MFC为其预定义的消息,分别选择WM_KEYDOWN、WM_KEYUP、WM_CHAR消息, 单击“Add Function”按钮,MFC就会为其自动添加相应的消息映射宏和消息处理函数。

(4)添加实现代码:在资源文件“KeyboardDemoView.cpp”中添加各键盘消息函数的实现代码。

OnKeyDown函数的代码如下:

void CKeyboardDemoView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) {

if(nChar==VK_SHIFT)//判断Shift键是否被按下 {

bShiftdown=true; bShiftup=false;

Invalidate(true); //显示信息 }

CView::OnKeyDown(nChar, nRepCnt, nFlags); }

注:Invalidate(TRUE)将整个窗口设置为需要重绘的无效区域,它会产生WM_PAINT消息,这样OnDraw将被调用。 OnKeyUp函数的代码如下:

void CKeyboardDemoView::OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags) {

if(nChar==VK_SHIFT)//判断Shift键是否被释放 {

bShiftup=true; bShiftdown=false;

Invalidate(true);//显示信息 }

CView::OnKeyUp(nChar, nRepCnt, nFlags); }

OnChar函数的代码如下:

void CKeyboardDemoView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) {

//判断是否同时敲击了字符键B键和Shift键 if((nChar=='b')|(nChar=='B')) //if((nChar==66)|(nChar==98)) {

if(bShiftdown) {

bShiftB=true; bShiftdown=false; Invalidate(true); } }

CView::OnChar(nChar, nRepCnt, nFlags); }

在资源文件”KeyboardDemoView.cpp”的OnDraw函数中,实现在客


vc++(vs2010) windows编程与绘图程序设计(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:脂肪性肝炎诊疗常规

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: