VC++ 2010下的MFC应用程序与WINDOWS窗体应用程序的区别

VC++ <wbr>2010ä¸çMFCåºç¨ç¨åºä¸Windowsçªä½åºç¨ç¨åºçåºå«

如上图,说说这两者的区别。

两个都可以直接创建windows窗体,这两个在应用上有什么不同?

感觉MFC的控件和属性设置功能不如windows窗体应用程序,怎么MFC属性里面好像大部分都只能设置TRUE、FALSE?
我感觉MFC好像没windows窗体应用程序灵活,但软件大部分都是用MFC吧?那windows窗体应用程序有什么用呢?

摘自CSDN的帖子:http://bbs.csdn.net/topics/340256574

-------------------------------------------------------------------------------------------------

从结果来看,完全一样

但过程上来看,MFC就要简单的多。

因为MFC用windows 窗体应用程序写了很多工具,可以直接使用,可以让我们的工作简化很多。

MFC的开发方法和windows 窗体应用程序完全不同。

如果要用,就是先用windows 窗体应用程序先写成MFC,再进行开发。 

运行起来两者并没有不同,MFC其实就是封装了大部分的API,这样你调用一个MFC函数或new一个MFC的类相当于调用了很多API函数了,这样就节省了大量的时间了;两者的开发方法有点不同,MFC注重于现在类的重用;API方法注重于能熟悉使用WINDOWSAPI上。 

-------------------------------------------------------------------------------------------------

:我一直有一个疑问:在windows应用程序里面可以轻松设置界面(字体、大小、颜色……),怎么到了MFC应用程序就不行了?

:MFC 通过GDI提供的函数来设置的。

-------------------------------------------------------------------------------------------------

因为Windows窗体这个说法容易误导人,应该叫Windows Forms是.NET引入的,可以像C#、VB.NET那样可以拖拽编程,.NET库把所有操作系统细节都封闭了,你使用各种控件的功能时就像VB6那样时由运行库代劳很多细节,你不需要知道对话框模板或GDI画刷之类的。不过程序是解释执行的,而且必须带.NET组件安装包才能发布。不过一般的程序也能接受。

不过对于VC开发的程序,大多数还是用MFC做的,因为考虑MFC是编译非解释,效率更高。如果想用.NET完全可以用语法更简洁的C#,.NET下C++自身的很多功能比如指针什么的就不能随便用了、VC++.NET总有些不伦不类。
不过用MFC比纯用Windows SDK写C程序要方便很多了,用SDK写就是那个“Win32项目”,所有控件的创建和消息处理都必须自己动手,稍微大一点的程序就很难管理了。而MFC点几下就能产生一个SDI/MDI框架,开发效率已经提高很多倍了。对各种Windows功能的封装、文档视图结构什么的都大大简化了绘图、打印、保存等操作。虽然是十几年前就成熟的东西,但是到现在来说还是宝刀未老。

-------------------------------------------------------------------------------------------------

提炼出来的结果:

要用C++的话就用MFC,要用.NET的话就用C#。

我也觉得C++/CLI这一套比C#复杂多了,编起来寸步难行……

 

补充,还有一个是Win32项目,这个也比较难用。新建一个项目后运行效果如下:

VC++ <wbr>2010下的MFC应用程序与Windows窗体应用程序的区别

自动生成的代码如下:

VC++ <wbr>2010下的MFC应用程序与Windows窗体应用程序的区别

看了C#后再来看这些,顿觉复杂。

看惯了

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值