C++图形界面编程-MFC

C++控制台程序是命令行黑框,如果要写一个图形界面,VS也提供了图形界面编程MFC。建项目的时候选如下选项:

类似于QT。

问:那么MFC项目的运行入口main()或WinMain()在哪里呢?

答:其实,在MFC应用程序中,MFC维护着一个WinMain()函数,只是它被隐藏了。通过你写的MFC代码,你已经建立了一个CWinApp对象,这个全局对象的初始化工作在WinMain()被调用之前就已经完成。

以一个简单例子说明:

复制代码
// The minimal MFC program
************************************************
#include <afxwin.h>

class CMinApp : public CWinApp
{
    public:
    virtual BOOL InitInstance();
};

// 重载的InitInstance()实现
    BOOL CMinApp::InitInstance ()
{
// 分配C 窗口对象
    CFrameWnd * pFrame = new CFrameWnd();

// 创建窗口并命名标题栏,_T()是支持UNICODE之用,
    pFrame->Create( 0, _T( "A Minimal MFC Program" ) );

// 显示窗口
    pFrame->ShowWindow( SW_SHOWDEFAULT );
    pFrame->UpdateWindow ();

// 将已经指定的框架与应用程序对象建立关联
    AfxGetApp()->m_pMainWnd = pFrame;

return TRUE;
}

// 创建唯一的也是必须的应用程序对象。它不存在任何函数之中,是全局对象。
CMinApp MyApp;

一般可以简单的认为,CMinApp MyApp是程序的入口。

参考: MFC程序入口分析_愤怒的北方酱的博客-CSDN博客

相关推荐
长安——归故李7 分钟前
【modbus学习】
java·c语言·c++·学习·算法·c#
索迪迈科技9 分钟前
STL库——map/set(类函数学习)
开发语言·c++·学习
Dfreedom.14 分钟前
在Windows上搭建GPU版本PyTorch运行环境的详细步骤
c++·人工智能·pytorch·python·深度学习
ForteScarlet31 分钟前
Kotlin 2.2.20 现已发布!下个版本的特性抢先看!
android·开发语言·kotlin·jetbrains
anlogic40 分钟前
Java基础 9.10
java·开发语言·算法
yongche_shi1 小时前
第二篇:Python“装包”与“拆包”的艺术:可迭代对象、迭代器、生成器
开发语言·python·面试·面试宝典·生成器·拆包·装包
Elastic 中国社区官方博客1 小时前
介绍 Python Elasticsearch Client 的 ES|QL 查询构建器
大数据·开发语言·数据库·python·elasticsearch·搜索引擎·全文检索
Hóng xīng qiáo1 小时前
swVBA自学笔记014、Lisp适合对SolidWorks进行二次开发吗 ?
开发语言·笔记·lisp
一拳一个呆瓜1 小时前
【MFC】对话框:位置属性(居中、绝对对齐、X位置Y位置)应用示例
c++·mfc
m0_552200821 小时前
《UE5_C++多人TPS完整教程》学习笔记48 ——《P49 瞄准偏移(Aim Offset)》
c++·游戏·ue5