ClassWizard类向导的使用实用_第1页
ClassWizard类向导的使用实用_第2页
ClassWizard类向导的使用实用_第3页
ClassWizard类向导的使用实用_第4页
ClassWizard类向导的使用实用_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

会计学1ClassWizard类向导的使用实用MFC管理类的方式point.hclassCPoint{private:intX;intY;public:CPoint(intx=0,inty=0);voidShow();

};#include“point.h”CPoint::CPoint(intx=0,inty=0){X=x;Y=y;}voidCPoint::Show(){cout<<“(”<<X<<“,”<<Y<<“)”;}point.cppvoidf();voidCPoint::f(){//添加代码}第1页/共31页二、ClassWizard的启动只有在打开或创建了一个项目后,在View主菜单中才会出现ClassWizard类向导菜单项。

启动ClassWizard有两种方式:

1、通过菜单命令,如上图;

2、通过快捷键Ctrl+W。第2页/共31页处理消息映射,为消息添加或删除处理函数为对话框控件添加或删除成员变量管理OLE自动化类的属性和方法管理ActiveX类所支持的ActiveX类事件显示当前应用程序中所包含的所有类的信息第3页/共31页消息映射第4页/共31页消息发送和消息处理的一般过程为:消息发送——消息映射——消息处理。第5页/共31页鼠标事件和鼠标消息客户区鼠标消息涵义WM_MOUSEMOVE鼠标移动WM_LBUTTONUP鼠标左键释放WM_LBUTTONDBCLK鼠标左键双击WM_LBUTTONDOWN鼠标左键按下WM_RBUTTONUP鼠标右键释放WM_RBUTTONDBCLK鼠标右键双击WM_RBUTTONDOWN鼠标右键按下WM_MBUTTONUP鼠标中键释放WM_MBUTTONDBCLK鼠标中键双击WM_MBUTTONDOWN鼠标中键按下●客户区鼠标消息第6页/共31页●鼠标事件的处理MFC把鼠标消息处理函数封装在CView类中。对于客户区鼠标消息对应的消息处理函数如下:afx_msgvoidOnMouseMove(UINTnFlags,CPointpoint);afx_msgvoidOnLButtonUp(UINTnFlags,CPointpoint);afx_msgvoidOnLButtonDbClk(UINTnFlags,CPointpoint);afx_msgvoidOnLButtonDown(UINTnFlags,CPointpoint);afx_msgvoidOnRButtonUp(UINTnFlags,CPointpoint);afx_msgvoidOnRButtonDbClk(UINTnFlags,CPointpoint);afx_msgvoidOnRButtonDown(UINTnFlags,CPointpoint);afx_msgvoidOnMButtonUp(UINTnFlags,CPointpoint);afx_msgvoidOnMButtonDbClk(UINTnFlags,CPointpoint);afx_msgvoidOnMButtonDown(UINTnFlags,CPointpoint);第7页/共31页参数nFlags用来描述鼠标按钮和键盘上Shift键和Ctrl键的组合状态。其取值如下表:nFlags涵义MK_CONTROLCtrl键按下MK_LBUTTON鼠标左键按下,同WM_LBUTTONDOWNMK_MBUTTON鼠标中键按下,同WM_MBUTTONDOWNMK_RBUTTON鼠标右键按下,同WM_RBUTTONDOWNMK_SHIFTShift键按下如:if(nFlags&MK_CONTROL) MessageBox("Ctrl键按下"); elseMessageBox("Ctrl键没有按下");第8页/共31页【例1】在视图窗口单击鼠标左键弹出一个“Hello,theworld!”消息框。第9页/共31页在头文件EXAMPLE1View.h中声明消息处理函数OnLButtonDown:protected: //{{AFX_MSG(CEXAMPLE1View) afx_msgvoidOnLButtonDown(UINTnFlags,CPointpoint); //}}AFX_MSG DECLARE_MESSAGE_MAP()第10页/共31页在实现文件EXAMPLE1View.cpp消息映射入口处,添加了相应的映射宏:BEGIN_MESSAGE_MAP(CEXAMPLE1View,CView) //{{AFX_MSG_MAP(CEXAMPLE1View)

ON_WM_LBUTTONDOWN(

) //}}AFX_MSG_MAP //Standardprintingcommands ……END_MESSAGE_MAP()第11页/共31页在实现文件EXAMPLE1View.cpp中写入一个控的消息处理函数的框架,以便开发人员填入具体的程序代码:voidCEXAMPLE1View::OnLButtonDown(UINTnFlags,CPointpoint){ //TODO:Addyourmessagehandlercodehereand/orcalldefault CView::OnLButtonDown(nFlags,point);}第12页/共31页【EXAMPLE2】在视图窗口跟踪鼠标的当前位置,并且在视图的客户区显示鼠标的坐标值。第13页/共31页2.窗口事件和窗口消息第14页/共31页【EXAMPLE3】给一个窗口程序添加关闭和打开时的消息,使之能在打开和关闭时有小消息框提示。第15页/共31页【例4】在视图窗口单击鼠标左键或右键分别弹出不同的消息框,显示单击鼠标左键或右键的次数。第16页/共31页【例5】在视图窗口单击鼠标左键弹出一个对话框,对话框。第17页/共31页关联对话框控件的成员变量第18页/共31页三、案例演示第19页/共31页案例分析及设计步骤:1、利用MFC应用程序向导生成单文档(SingleDocument)应用程序框架。第20页/共31页2、利用资源编辑器添加资源:在本案例中是一个对话框(鼠标单击左键后弹出这个对话框),在对话框上要添加四个按钮(Button)和一个编辑框(Edit)。(1)选中“ResourceView”选项卡(2)在“Dialog”文件夹上单击鼠标右键,弹出快捷菜单,选择“InsertDialog”菜单命令。第21页/共31页(3)拖入控件,设计对话框。控件ControlA(编辑框)控件ControlB(消息框)变量Variable第22页/共31页控件与关联变量之间的数据内容传递,UpdateData()函数。其原型如下:BOOLUpdateData(BOOLb=TRUE);

当b赋值为TRUE时,将控件的内容传送给对应的成员变量,当b赋值为FALSE时,将成员变量的值传送给控件并更新控件的显示。控件Control变量VariableUpdateData(false);UpdateData(true);第23页/共31页3、通过ClassWizard类向导创建新类,添加关联对话框控件的成员变量。第24页/共31页4、打开TestView.cpp文件,在CTestView::OnDraw(CDC*pDC)函数中添加代码,如下(红色代码为添加代码):voidCTestView::OnDraw(CDC*pDC){ CTestDoc*pDoc=GetDocument(); ASSERT_VALID(pDoc); //TODO:adddrawcodefornativedatahere

pDC->TextOut(10,10,"单击鼠标左键激活弹出对话框!");}//TODO:其作用是为了方便用户,让用户知道他能/可以作什么操作。第25页/共31页5、通过ClassWizard类向导进行消息映射,主要包括:在视图窗口左键单击(WM_LBUTTONDOWN)、在对话框上单击四个按钮(BN_CLICKED)。第26页/共31页6、编写具体的函数代码。voidCTestView::OnLButtonDown(UINTnFlags,CPointpoint)//鼠标左键的函数{ //TODO:Addyourmessagehandlercodehereand/orcalldefault

CShowDlgshowdlg; showdlg.DoModal(); CView::OnLButtonDown(nFlags,point);}voidCShowDlg::OnDefaultbtn()//的函数{//TODO:Addyourcontrolnotificationhandlercodehere

m_Text="武汉科技大学中南分校信息工程学院"; UpdateData(false);}第27页/共31页voidCShowDlg::OnMessageboxbtn()//的函数{ //TODO:Addyourcontrolnotificationhandlercodehere

UpdateData(true); MessageBox(m_Text,"信息框",MB_OK);}voidCShowDlg::OnClearbtn()//的函数{ //TODO:Addyourcontrolnotificationhandlercodehere

m_Text

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论