利用向导创建MFC
一、具体步骤
1、首先打开visual studio,file->new->project
2、Installed->Templates->Visual C++->MFC,选择MFC Application,命名为mfc_Guide,点击OK
3、点击Next
4、设置应用程序类型和项目类型,这里选择的是单个文档和MFC标准,点击Next
5、设置复合文档支持,这里直接点击Next
6、设置文档模板属性,点击Next
7、设置主框架样式和命令栏,经典的停靠工具栏可不勾选,点击Next
8、设置高级功能,这里直接点击Next
9、此时会生成四个类,分别是View类、App类、Doc类和CMainFrame类,View类是用来做显示的,Doc类专门用来管理数据文档
点击Finish,创建成功,如下图
10、查看类视图,可以看到我们生成的四个类
二、新建消息
框架窗口是视窗口的父窗口,那么视图窗口就应该始终覆盖在框架类窗口之上。框架窗口相当于相框,而视窗口相当于相片。所有操作,包括鼠标单击、鼠标移动等操作都只能由视类窗口捕获。
1、Cmfc_GuideView左键属性
2、在Messages里面找到WM_LBUTTONDOWN,在下拉框里面选择<Add> OnLButtonDown
3、找到OnLButttonDown函数,编辑如下
void Cmfc_GuideView::OnLButtonDown(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default CView::OnLButtonDown(nFlags, point); CString str; str.Format(TEXT("x = %d,y = %d"), point.x, point.y); MessageBox(str); }
4、保存后,点击Local Windwos Debugger,鼠标点击窗口内一个位置,触发LButtonDown,运行结果去下图
三、OnDraw与OnPaint
OnDraw是View类里面自动生成的画图函数,我们这里简单打印一句话,如下
void Cmfc_GuideView::OnDraw(CDC* pDC) { Cmfc_GuideDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if (!pDoc) return; // TODO: add draw code for native data here pDC->TextOutW(100, 100, TEXT("为了部落")); }
OnPaint需要View类里面新建消息
编辑OnPaint函数,也可用于画图
void Cmfc_GuideView::OnPaint() { CPaintDC dc(this); // device context for painting // TODO: Add your message handler code here // Do not call CView::OnPaint() for painting messages dc.TextOutW(100, 100, TEXT("为了联盟")); }
当OnDraw与OnPaint同时存在时,OnPaint会覆盖点OnDraw,如下图
四、OnCreate与Create的区别
1、Create()只是负责注册并产生窗口,像动态创建控件中的Create()一样,窗口创建之后会向操作系统发送WM_CREATE消息
2、OnCreate()不会产生窗口,只是在窗口显示前设置窗口的属性如风格、位置等
3、OnCreate是消息WM_Create的消息响应函数