赞
踩
大学期间可能学的编程语言是 C++ 和 Java 。而学 C++,就绕不开 MFC, MFC 全称是 Microsoft Foundation Classes 。是微软比尔•盖茨时代的经典力作,而 Visual Studio 6 的出现,更是把 MFC 推向了顶峰。今天,随着技术的发展,一些诸如远程控制、视频会议的 WebRTC, 以及各类游戏等等的开发,都离不开 C++, 当然也就绕不过 MFC 。
用 C++ 和 MFC 有什么好处呢?好处就是它的作图以及图像处理是以像素点为基础的,不像 C# 的 WPF, 与像素点无关,而是一个作图单位被定义成 1/96 英寸,这对渲染带来了复杂度,效率大大降低,而且获取截屏变得困难,所以,今天的视频会议,远程控制,宁可用 C++ , 也不愿意使用 C# 。如今流行的 WebRTC 的截屏技术,正是使用 MFC 的 GetWindowDC。所以,让我们重拾 MFC 吧。
今天的 Visual Studio 已经到了 2022 版本,废话少说,我们看看,利用 Visual Studio 2022, 怎样实现一个简单的 MFC 的 Hello World!的程序
我们这里不把安装从头讲起,也许你已为 .Net Core 提前安装了 Visual Studio 2022, 那么,默认的情况下,MFC 是不支持的,那么,就按下列步骤安装
步骤一、启动 VS2022, 创建新项目,如下图所示
步骤二、在搜索栏里输入“C++”, 空格, “Windows”,出现一些选项,选择 “Windows 桌面向导”,然后点击“下一步”,如下图所示:
步骤三、在填写好项目名称,确定好项目所存放的文件夹位置,点击创建,如下图所示
在随后弹出的对话框中,勾选“空项目”,用了默认的"控制台应用程序"就点击“确定”,不要紧,后面在配置里面改。
步骤五,右键点击“头文件” -> “添加” -> “新建项”
步骤六、建立 Hello.h 头文件
步骤七、输入头文件代码
#pragma once #include <afxwin.h> class CMyApp : public CWinApp { public: virtual BOOL InitInstance(); }; class CMainWindow :public CFrameWnd { public: CMainWindow(); protected: afx_msg void OnPaint(); DECLARE_MESSAGE_MAP(); };
步骤八、右键点击“源文件” -> “添加” -> “新建项”
步骤九、输入源程序源代码
#include "Hello.h" CMyApp myApp; BOOL CMyApp::InitInstance() { m_pMainWnd = new CMainWindow(); m_pMainWnd->ShowWindow(m_nCmdShow); m_pMainWnd->UpdateWindow(); return TRUE; } BEGIN_MESSAGE_MAP(CMainWindow, CFrameWnd) ON_WM_PAINT() END_MESSAGE_MAP() CMainWindow::CMainWindow() { Create(NULL, _T("Hello"), WS_OVERLAPPEDWINDOW, CRect(32, 64, 352, 304)); } void CMainWindow::OnPaint() { CPaintDC dc(this); CRect rect; GetClientRect(&rect); dc.DrawText(_T("Hello,World!"), -1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER); }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。