利用向导创建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的消息响应函数

原文地址:https://www.cnblogs.com/yanchaoyi/p/12633181.html