zoukankan      html  css  js  c++  java
  • 利用向导创建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的消息响应函数

  • 相关阅读:
    C# 二维数组 排列组合
    highcharts(数据可视化框架),ajax传递数据问题
    EasyPoi导入验证功能
    EasyPoi使用入门
    SSJ(Spring+springMVC+JPA)设置xml文件思路流程
    spring框架设置jdbc
    使用JDBC完成CRUD(增删改查)
    Java的数据类型(常量,变量)
    jdk8的安装与卸载
    Java的第一个你好世界
  • 原文地址:https://www.cnblogs.com/yanchaoyi/p/12633181.html
Copyright © 2011-2022 走看看