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博客

相关推荐
workflower3 小时前
单元测试-例子
java·开发语言·算法·django·个人开发·结对编程
YuanlongWang3 小时前
C# 基础——装箱和拆箱
java·开发语言·c#
b78gb3 小时前
电商秒杀系统设计 Java+MySQL实现高并发库存管理与订单处理
java·开发语言·mysql
LXS_3574 小时前
Day 05 C++ 入门 之 指针
开发语言·c++·笔记·学习方法·改行学it
etsuyou6 小时前
js前端this指向规则
开发语言·前端·javascript
shizhenshide6 小时前
为什么有时候 reCAPTCHA 通过率偏低,常见原因有哪些
开发语言·php·验证码·captcha·recaptcha·ezcaptcha
挂科是不可能出现的6 小时前
最长连续序列
数据结构·c++·算法
mit6.8246 小时前
[Agent可视化] 配置系统 | 实现AI模型切换 | 热重载机制 | fsnotify库(go)
开发语言·人工智能·golang
友友马6 小时前
『 QT 』QT控件属性全解析 (一)
开发语言·前端·qt
小白学大数据7 小时前
实战:Python爬虫如何模拟登录与维持会话状态
开发语言·爬虫·python