先学API编程还是先学MFC编程

我是打算两种都学会的,不知道先学什么再学什么活着是同时学?那一种方法更高效呢?
谢谢大家的参与 .请围绕API与MFC尽情发言

两种没有必要都学,只要学MFC 就完全够了,MFC是对API的高度封装,包含了绝大部分的API,API 是什么,是应用程序编程接口,是一些预先定义的函数,你学他干嘛?想解剖它?无非就是几个常用的破函数 有什么必要学的呢?你只要有思路就够了,例如 你想 发现一个窗口,你立马想到 要使用 FindWindow,又例如 你想枚举窗口 立马想到用 EnumWindows,等等 能做到这点就足够了,从网上下一个API函数大全的chm文档,使用时候就查查,现查现用,没有必要浪费时间单独学习API,何况MFC已经封装了API。
MFC是什么 一个微软公司提供的类库(class libraries),以C++类的形式封装了Windows的API,并且包含一个应用程序框架。
最重要的是MFC的消息映射机制,完全符合Windows平台的消息原理,让你的程序如此强大,这是VB 与 Delphi 望尘莫及的。
MFC还是比较难以上手的,建议买VC6.0的书籍 ,照着实例 一遍又一遍的做,等领悟了其原理,看一本《windows程序设计 第5版》,里面全面介绍了 windows的消息机制。你就彻底明白了MFC的良心用苦,这本书 最好先 不急着看,最好是先做实例。
至于 某些人说的 “MFC 只是一种封装,甚至可以不学” 简直就是农民见识,看来你所谓的程序 永远是 个dos程序或cmd程序,你的程序有菜单吗?有对话框吗?没有吧,你永远停留在了 开发 “hello world”程序阶段,
“hello world”算是程序吗?不算吗?算吗?不算吗?算吗?........
=========================================
API就是几个函数,
函数1
函数2
函数3
。。。。。

函数n
有消息机制??我怎么没看到,难道就一个SendMessag和 PostMessage 就代表了消息机制??
函数就是函数,不是《操作系统》
API不存在学与不学的问题,在于你知道不知道有这么一个功能的函数在等待你使用的问题。
完全没有必要掌握大量的API API都是有规律可循的,想 得到东西一般都是Get开头,枚举一般是Enum开头,设置一般是Set开头,打开是Open开头 等等。。
难道是 拿个几个API函数来 研究倒是几个参数啊,什么样的返回值啊,做了哪些事情啊,就能知道 消息机制,内存管理、进程线程???????????
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-10-07
看要学习的程度,如果简单肤浅的话,摆弄摆弄 MFC 的例子就行了

要想深入的话,windows API 必须要学习到一定的深度

MFC 只是一种封装,甚至可以不学,而用其他的库

==============================================================

学习 windows API 不仅仅是学几个函数

而是要学习 windows 编程的基本原理

包括消息机制,内存管理、进程线程、GDI 等等内容

重在原理的理解和应用,具体的函数用法自然是用到时再查

不学 API 而要学好 MFC,等于空中楼阁吧

=============================================

用函数的时候需要关心应用的场景以及效果

比如 SendMessage 确实没有什么特别的

但SendMessage 如何执行呢,什么时候会发送消息,

进入消息队列之后会如何呢

没有消息机制的学习是不能深入理解,灵活应用的

amote258 是从使用的角度来看 windows API

从学习的角度,认识的过程是有差别的

编程不是几个简单函数的套用

MFC 已经过时了,

但 windows API 没有过时,因为还是 windows 系统,只是有所修改和扩展本回答被提问者采纳
第2个回答  2010-10-07
api是接口,你要学接口来做什么呢?不就是为了实现一些功能吗 ? 至于学习那个要看你个人的需求咯,如果以后想做mfc方面的开发就多注意些mfc的东西,如果想做其他方面的开发就可以做侧重些api,但如果想两样都学的话, 建议是在学mfc的基础上来熟悉api,否则即使学会在多的api又有什么用呢? 能做出什么程序呢?,api那么多你又能记住多少个呢?我是比较推荐第3种方式的,推荐本书给你 深入浅出mfc (深入浅出那一系列都不错的)
第3个回答  2010-10-09
看你要学到什么程度,要想学深了就得多看API,要是一般点,学MFC,简单、方便、快捷!当然,也要学一些基本的API,混合着用!两样一起学!总之,要学玩一样,学精要花很多时间,没那时间耗!
第4个回答  2010-10-07
你如果有编程基础,可以先学API,如果没有基础,先学MFC,会简单点
相似回答