MFC程序的创建+一个简单的消息映射的实现

简介: MFC程序的创建+一个简单的消息映射的实现

一、前置

本机环境:Win11,VS2022

首先要保证VS中已经安装MFC扩展包,未安装可以在工具->获取工具和功能 中搜索安装
在这里插入图片描述

二、MFC程序创建

下面是MFC程序创建过程

  1. 搜索MFC,选择MFC应用,点击下一步

在这里插入图片描述

  1. 填写项目名称,选择项目位置,创建

在这里插入图片描述

  1. 选择单个文档、项目样式选择MFC standard,点击完成即可创建成功

在这里插入图片描述

  1. 在 生成的类 中,发现一共会生成五种类:App类相当于MFC程序的入口;Doc类用来管理数据;Frame类是框架类,可以理解成窗口;View类即视类。直接点击完成即可创建成功。

在这里插入图片描述

可以直接运行,生成以下窗口
运行效果

三、一个简单的消息映射

功能描述

点击窗口中的任意位置,跳出一个新的窗口,显示点击处的坐标

功能实现

分析功能,本质上我们希望 窗口 响应 点击事件 ,并生成一个窗口,窗口中文字是自定义的。但是frame是框架类,view是视类,是真正进行显示的部分,有关显示的东西全部都写到View类。

  1. 双击类视图中的CView,即可跳转到对应的.h文件中,发现CView类中已经写好声明宏DECLARE_MESSAGE_MAP(),意思是可以将消息映射到属于该类的对象中

在这里插入图片描述

  1. 接着双击该类下的任意一个函数,即可跳转到.cpp文件,发现分界宏已经有了,我们希望受到响应的事件/消息可以在分界宏之间定义

在这里插入图片描述

  1. 右击C*View,点击属性,选择消息

在这里插入图片描述

  1. 找到OnLButtonDown,点击add,就可以自动生成函数,现在只需要填充函数内容即可

在这里插入图片描述

  1. 在OnLButtonDown函数中进行实现,代码如下所示
// 注意把类名换成自己的
void CSmallDrawingSystemView::OnLButtonDown(UINT nFlags, CPoint point)
{
    // TODO: 在此添加消息处理程序代码和/或调用默认值

    CView::OnLButtonDown(nFlags, point);

    CString str;
    str.Format(TEXT("x=%d, y=%d"), point.x, point.y);

    MessageBox(str);
}
  1. 点击运行,效果如下

在这里插入图片描述

目录
相关文章
|
C++ 索引
VC通过函数索引调用DLL范例
VC通过函数索引调用DLL范例
52 0
|
Shell 索引 Windows
MFC文件之SHGetFileInfo函数与SHFILEINFO结构体
MFC文件之SHGetFileInfo函数与SHFILEINFO结构体
205 0
MFC文件之SHGetFileInfo函数与SHFILEINFO结构体
MFC创建动态链接库DLL并调用方法详解
实例一: 1、创建一个动态链接库工程,如login_dll。 2、在原工程头文件或者新建头文件如showdlg.h定义动态链接库的导出函数,代码如下: #include "stdafx.h"#define EXPORT __declspec(dllexport)extern "C"  EXPO...
3579 0
在MFC程序中添加全屏显示功能
这是工作室为实现全屏显示所发集的一个演示程序。你可以通过选择全屏显示菜单选项时看到相应的效果。这段代码包括两个内容:全屏显示,浮动工具条(用于恢复操作)。
1333 0
|
C# C++ C语言
C#调用c++的动态库dll演示例程
<h1>1.首先编写c++动态库</h1> <p></p> <pre name="code" class="cpp">extern "C" __declspec(dllexport) int __stdcall add(int x, int y) { return x + y; }</pre> <p><img src="http://img.blog.csdn.net/201505
4504 0
|
C++ API 存储
C++MFC编程笔记day01 MFC介绍、创建MFC程序和重写消息处理
一、MFC概念和作用 1、全称Microsoft Foundation Class Library,我们称为微软基础类库,封闭了绝大部分的win32 Api函数,C++语法中的数据结构,程序的执行流程MFC就是一个库(动态库,静态库)MFC还是一个程序框架 2、为什么使用MFC基于框架编程,提高工作效率,减少开发周期,节约开发成本。
1369 0