孙鑫vc++笔记.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
孙鑫vc笔记

第三讲 有了一定的Windows32编程知识,就能学习MFC了。 在学习MFC之前,一定要弄明白Windows32编程中的消息循环是怎么回事。MFC实际上就是对Windows API函数的封装。 ? 在Windows程序设计编程中,创建一个窗口要经历下面四个过程?(如有不懂,请看博客 win32初窥) 1设计一个窗口类; 2注册窗口类; 3创建窗口; 4显示及更新窗口。 ? 同样,MFC中也是一样的。只是封装了而已,很多人认为MFC很难学,看着书本能编程序,但是却编写不了自己的程序,为什么呢?因为还没有理解MFC的原理的机制。 市场上有很多有关VC++的书本,但是很少有将MFC原理讲得比较透彻的,引用孙鑫老师的话。 同样的,WinMain也是入口函数,具体的过程,请看孙鑫视频20讲之第三讲 其中,孙鑫老师开始提出的一个问题是: 在全局变量中,定义一个子类对象。。。 #includeiostream #includestring using namespace std; class Person { public: Person *p; Person() { } virtual void say() { coutPersons say()endl; } }; class Student:public Person { public: Student() { } void say() { coutStudents say()endl; } }; Student s; int main() { s.p-say();//这里将调用子类的方法 return 0; } 什么都不用做,直接用向导生成一个MFC窗口。 下面是结构图,有五个类 是这样命名的,开头的C表示Class ,C+工程名+(App,Doc,View...) 其中CMainFrame表示一个窗口(主窗体,包括标题栏,菜单...),XXApp表示运用程序,XXDOC表示文档类(加载数据,实现数据的存储与操作分离),XXView也表示一个窗口(相当于Windows的客户区) ? 下面看看MFC中类的主要继承关系: 由于继承树太大,这里只罗列了CWnd的继承关系 API中CreateWindowEx和CreateWindow几乎是一样的,Ex表示扩展,多了一个参数 下面用API模拟CWnd just模拟 class CWnd { public: BOOL CreateEX( DWORD dwExStyle, // extended window style LPCTSTR lpClassName, // registered class name LPCTSTR lpWindowName, // window name DWORD dwStyle, // window style int x, // horizontal position of window int y, // vertical position of window int nWidth, // window width int nHeight, // window height HWND hWndParent, // handle to parent or owner window HMENU hMenu, // menu handle or child identifier HINSTANCE hInstance, // handle to application instance LPVOID lpParam // window-creation data ); BOOL ShowWindow(int nCmdShow); BOOL UpdateWindow(); public: HWND m_hWnd; }; BOOL CWnd::CreateEx( DWORD dwExStyle, // extended window style LPCTSTR lpClassName, // registered class name LPCTSTR lpWindowName, // window name DWORD dwStyle, // window style int x, // horizontal position of

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档