欢迎来到天天文库
浏览记录
ID:21980276
大小:1.14 MB
页数:32页
时间:2018-10-21
《classwizard类向导的使用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、ClassWizard类向导一、概述利用MFC应用程序向导生成应用程序框架后,需要为程序添加消息处理成员函数和对话框控件的成员变量,有时还需要为程序添加新的MFC派生类,那么这些可以通过ClassWizard类向导来实现。MFCClassWizard类向导根据程序开发人员的要求以半自动化的方式添加程序代码,也是进行MFC应用程序设计时一个必不可少的交互式工具。MFC管理类的方式point.hclassCPoint{private:intX;intY;public:CPoint(intx=0,int
2、y=0);voidShow();};#include“point.h”CPoint::CPoint(intx=0,inty=0){X=x;Y=y;}voidCPoint::Show(){cout<<“(”<3、上图;2、通过快捷键Ctrl+W。处理消息映射,为消息添加或删除处理函数为对话框控件添加或删除成员变量管理OLE自动化类的属性和方法管理ActiveX类所支持的ActiveX类事件显示当前应用程序中所包含的所有类的信息消息映射消息发送和消息处理的一般过程为:消息发送——消息映射——消息处理。鼠标事件和鼠标消息客户区鼠标消息涵义WM_MOUSEMOVE鼠标移动WM_LBUTTONUP鼠标左键释放WM_LBUTTONDBCLK鼠标左键双击WM_LBUTTONDOWN鼠标左键按下WM_RBUTTONUP4、鼠标右键释放WM_RBUTTONDBCLK鼠标右键双击WM_RBUTTONDOWN鼠标右键按下WM_MBUTTONUP鼠标中键释放WM_MBUTTONDBCLK鼠标中键双击WM_MBUTTONDOWN鼠标中键按下●客户区鼠标消息●鼠标事件的处理MFC把鼠标消息处理函数封装在CView类中。对于客户区鼠标消息对应的消息处理函数如下:afx_msgvoidOnMouseMove(UINTnFlags,CPointpoint);afx_msgvoidOnLButtonUp(UINTnFlags,CPoi5、ntpoint);afx_msgvoidOnLButtonDbClk(UINTnFlags,CPointpoint);afx_msgvoidOnLButtonDown(UINTnFlags,CPointpoint);afx_msgvoidOnRButtonUp(UINTnFlags,CPointpoint);afx_msgvoidOnRButtonDbClk(UINTnFlags,CPointpoint);afx_msgvoidOnRButtonDown(UINTnFlags,CPointpoin6、t);afx_msgvoidOnMButtonUp(UINTnFlags,CPointpoint);afx_msgvoidOnMButtonDbClk(UINTnFlags,CPointpoint);afx_msgvoidOnMButtonDown(UINTnFlags,CPointpoint);参数nFlags用来描述鼠标按钮和键盘上Shift键和Ctrl键的组合状态。其取值如下表:nFlags涵义MK_CONTROLCtrl键按下MK_LBUTTON鼠标左键按下,同WM_LBUTTONDOWN7、MK_MBUTTON鼠标中键按下,同WM_MBUTTONDOWNMK_RBUTTON鼠标右键按下,同WM_RBUTTONDOWNMK_SHIFTShift键按下如:if(nFlags&MK_CONTROL)MessageBox("Ctrl键按下");elseMessageBox("Ctrl键没有按下");【例1】在视图窗口单击鼠标左键弹出一个“Hello,theworld!”消息框。在头文件EXAMPLE1View.h中声明消息处理函数OnLButtonDown:protected://{{AFX8、_MSG(CEXAMPLE1View)afx_msgvoidOnLButtonDown(UINTnFlags,CPointpoint);//}}AFX_MSGDECLARE_MESSAGE_MAP()在实现文件EXAMPLE1View.cpp消息映射入口处,添加了相应的映射宏:BEGIN_MESSAGE_MAP(CEXAMPLE1View,CView)//{{AFX_MSG_MAP(CEXAMPLE1View)ON_WM_LBUTTONDOWN()//}}AFX_MSG_MAP//
3、上图;2、通过快捷键Ctrl+W。处理消息映射,为消息添加或删除处理函数为对话框控件添加或删除成员变量管理OLE自动化类的属性和方法管理ActiveX类所支持的ActiveX类事件显示当前应用程序中所包含的所有类的信息消息映射消息发送和消息处理的一般过程为:消息发送——消息映射——消息处理。鼠标事件和鼠标消息客户区鼠标消息涵义WM_MOUSEMOVE鼠标移动WM_LBUTTONUP鼠标左键释放WM_LBUTTONDBCLK鼠标左键双击WM_LBUTTONDOWN鼠标左键按下WM_RBUTTONUP
4、鼠标右键释放WM_RBUTTONDBCLK鼠标右键双击WM_RBUTTONDOWN鼠标右键按下WM_MBUTTONUP鼠标中键释放WM_MBUTTONDBCLK鼠标中键双击WM_MBUTTONDOWN鼠标中键按下●客户区鼠标消息●鼠标事件的处理MFC把鼠标消息处理函数封装在CView类中。对于客户区鼠标消息对应的消息处理函数如下:afx_msgvoidOnMouseMove(UINTnFlags,CPointpoint);afx_msgvoidOnLButtonUp(UINTnFlags,CPoi
5、ntpoint);afx_msgvoidOnLButtonDbClk(UINTnFlags,CPointpoint);afx_msgvoidOnLButtonDown(UINTnFlags,CPointpoint);afx_msgvoidOnRButtonUp(UINTnFlags,CPointpoint);afx_msgvoidOnRButtonDbClk(UINTnFlags,CPointpoint);afx_msgvoidOnRButtonDown(UINTnFlags,CPointpoin
6、t);afx_msgvoidOnMButtonUp(UINTnFlags,CPointpoint);afx_msgvoidOnMButtonDbClk(UINTnFlags,CPointpoint);afx_msgvoidOnMButtonDown(UINTnFlags,CPointpoint);参数nFlags用来描述鼠标按钮和键盘上Shift键和Ctrl键的组合状态。其取值如下表:nFlags涵义MK_CONTROLCtrl键按下MK_LBUTTON鼠标左键按下,同WM_LBUTTONDOWN
7、MK_MBUTTON鼠标中键按下,同WM_MBUTTONDOWNMK_RBUTTON鼠标右键按下,同WM_RBUTTONDOWNMK_SHIFTShift键按下如:if(nFlags&MK_CONTROL)MessageBox("Ctrl键按下");elseMessageBox("Ctrl键没有按下");【例1】在视图窗口单击鼠标左键弹出一个“Hello,theworld!”消息框。在头文件EXAMPLE1View.h中声明消息处理函数OnLButtonDown:protected://{{AFX
8、_MSG(CEXAMPLE1View)afx_msgvoidOnLButtonDown(UINTnFlags,CPointpoint);//}}AFX_MSGDECLARE_MESSAGE_MAP()在实现文件EXAMPLE1View.cpp消息映射入口处,添加了相应的映射宏:BEGIN_MESSAGE_MAP(CEXAMPLE1View,CView)//{{AFX_MSG_MAP(CEXAMPLE1View)ON_WM_LBUTTONDOWN()//}}AFX_MSG_MAP//
此文档下载收益归作者所有