- 1、本文档共32页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
使用ClassWizard类向导
ClassWizard 类向导;一、概述
利用MFC应用程序向导生成应用程序框架后,需要为
程序添加消息处理成员函数和对话框控件的成员变
量,有时还需要为程序添加新的MFC派生类,那么这些可
以通过ClassWizard类向导来实现。
MFC ClassWizard类向导根据程序开发人员的要求以
半自动化的方式添加程序代码,也是进行MFC应用程序设
计时一个必不可少的交互式工具。
;MFC管理类的方式;二、ClassWizard的启动
只有在打开或创建了一个项目后,在View主菜单中才会出
现ClassWizard类向导菜单项。
;处理消息映射,为消息
添加或删除处理函数;消息映射;消息发送和消息处理的一般过程为:
消息发送——消息映射——消息处理。 ; 鼠标事件和鼠标消息;●鼠标事件的处理
MFC把鼠标消息处理函数封装在CView类中。;参数nFlags用来描述鼠标按钮和键盘上Shift键和Ctrl键的组合状态。其取值如下表: ;【例1】在视图窗口单击鼠标左键弹出一个“Hello, the world!”消息框。;在头文件EXAMPLE1View.h中声明消息处理函数OnLButtonDown:
protected:
//{{AFX_MSG(CEXAMPLE1View)
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
//}}AFX_MSG
DECLARE_MESSAGE_MAP( ) ;在实现文件EXAMPLE1View.cpp消息映射入口处,添加了相应的映射宏:
BEGIN_MESSAGE_MAP(CEXAMPLE1View, CView)
//{{AFX_MSG_MAP(CEXAMPLE1View)
ON_WM_LBUTTONDOWN( )
//}}AFX_MSG_MAP
// Standard printing commands
……
END_MESSAGE_MAP();在实现文件EXAMPLE1View.cpp中写入一个控的消息处理函数的框架,以便开发人员填入具体的程序代码:
void CEXAMPLE1View::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CView::OnLButtonDown(nFlags, point);
};【EXAMPLE 2】在视图窗口跟踪鼠标的当前位置,并且在视图的客户区显示鼠标的坐标值。 ;2. 窗口事件和窗口消息;【EXAMPLE 3 】给一个窗口程序添加关闭和打开时的消息,使之能在打开和关闭时有小消息框提示。 ;【例4】在视图窗口单击鼠标左键或右键分别弹出不同的消息框,显示单击鼠标左键或右键的次数。;【例5】在视图窗口单击鼠标左键弹出一个对话框,对话框。;关联对话框控件的成员变量;三、案例演示;案例分析及设计步骤:
1、利用MFC应用程序向导生成单文档(Single Document)应用程序框架。;2、利用资源编辑器添加资源:在本案例中是一个对话框(鼠标单击左键后弹出这个对话框),在对话框上要添加四个按钮(Button)和一个编辑框(Edit)。;(3)拖入控件,设计对话框。;控件与关联变量之间的数据内容传递,UpdateData( )函数。 其原型如下:
BOOL UpdateData ( BOOL b =TRUE );
当 b 赋值为TRUE时,将控件的内容传送给对应的成员变量,当 b 赋值为FALSE时,将成员变量的值传送给控件并更新控件的显示。 ;3、通过ClassWizard类向导创建新类,添加关联对话框控件的成员变量。;4、打开TestView.cpp文件,在CTestView::OnDraw(CDC* pDC)函数中添加代码,如下(红色代码为添加代码):
void CTestView::OnDraw(CDC* pDC)
{
CTestDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
pDC-TextOut(10,10,单击鼠标左键激活弹出对话框!);
};5、通过ClassWizard类向导进行消息映射,主要包括:在视图窗口左键单击(WM_LBUTTONDOWN)、在对话框上单击四个按钮(BN_CLICKED)。;6、编写具体的函数代码。;void CShowDlg
文档评论(0)