- 1、本文档共64页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
大学Visual C++程序设计案例教程 杨琦 计算机教学实验中心 西安交通大学 授 课 内 容 1.1 Windows的用户界面对象 1.2 Windows编程的主要概念 1.3 Windows应用程序类型 1.4 MFC应用程序框架 1.5 MFC编程 1.6 在窗口的客户区输出文字和图形 1.7 使客户区重绘 1.8 Windows数据类型 1.9 Windows变量的命名规则 知识点 Windows提供了大量预定义的用C语言编写的函数,这些函数就叫做API(Application Programming Interface)函数 ,它实际上是开放给应用程序调用的系统功能函数,它沿用Pascal语言调用方式,所以增加了理解的难度。 早期的Windows应用程序设计人员要使用这些API函数来编写程序。 一、Windows编程基础 (1) 窗口 (3) 句柄 Windows 程序生成过程示意图 MFC和Application Framework 1. 从SDK到MFC Windows 3.0版本的API函数有578个,到1993年推出Win32时,已经达到1449个,消息个数也增加到287个。 从那以后,它们还在持续增长。数以千计的Windows API函数好似滚雪球一样愈滚愈多,愈滚愈大。 Windows程序的本意是为了减少程序员的工作量,但其发展结果却使Windows应用程序的编写更需要小心谨慎和大量的毅力及耐力。 例:最简单的MFC应用程序 #include afxwin.h class CMainFrame:public CFrameWnd {public: CMainFrame() { Create(NULL,最简单的MFC程序); } }; class CMyApp:public CWinApp { virtual BOOL InitInstance(); }; MFC应用程序运行步骤 (1)Windows将用户程序装入内存。 (2)构造全程对象theApp,在程序被装入时,所有全程对象都会立刻被创建。 (3)Windows调用全程函数WinMain,它是类库的一部分。 (4)WinMain会自动搜索CWinApp派生类的唯一实例。 (5) 找到后WinMain会调用theApp的InitInstance函数,它在派生类中被重新设置了。 (6)被重新设置的IniInstance函数启动文档的装入以主要框架和视图的显示处理过程。 (7)然后,WinMain调用theApp的Run函数,它启动窗口消息和命令消息的传递处理过程。 (8)当消息循环获得WM_QUIT消息后,消息循环结束,Run函数调用ExitInstance函数。 (9)ExitInstance函数负责完成应用程序结束之前的清楚工作。 (10)ExitInstance函数返回时,Run函数也返回了。MFC完成了一些清除工作,Windows终止应用程序。 1.4 MFC应用程序框架 MFC是采用单一继承,从根类Cobject层层派生出绝大多数MFC中的类,其层次结构是最典型。 窗口函数的封装——消息映射 用DECLARE_MESSAGE_MAP来声明消息映射表 用BEGIN_MESSAGE_MAP BEGIN_MESSAGE_MAP(类名称,基类名称) END_MESSAGE_MAP 来实现消息映射表 1.6 在窗口输出图形和CDC类 在Windows程序中,应用程序的输出并不直接面向物理的设备,如显示屏或打印机,而是针对一个称之为设备环境(Device Context)的逻辑设备进行操作,设备环境与实际设备之间的信息传送由Windows直接管理。 CDC常用成员函数 ——初始化函数 2.线输出函数 3.简单绘图函数 4.椭圆和多边形函数 5.位图函数 6.文本函数 例如: void CMyView::OnDraw(CDC* pDC) { CMyDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here pDC-TextOut(10,10,Hello,VC++); pDC-MoveTo(10,300); pDC-LineTo(200,250); pDC-LineTo(300,10); pDC-LineTo(300,300); pDC-LineTo(10,300); pDC-Ellipse(150,10,100,60); pDC-Rectangle(50,200,100,230); } 1.7 CWnd类的Invalidate函数 void CWnd::Invalidate( BOOL
您可能关注的文档
- 1版6102辑三第意创划策件课意创划策6102.ppt
- 1版6102辑十第意创划策件课意创划策6102.ppt
- 1版6102辑四第意创划策件课意创划策6102.ppt
- 1版6102辑五第意创划策件课意创划策6102.ppt
- 1版6102辑一第意创划策件课意创划策6102.ppt
- 1版6102辑一十第意创划策件课意创划策6102.ppt
- 1版6102业作案提目项真全意创划策件课意创划策6102.ppt
- 1版标目新教人件课1doirepkcapkcabyms’erehW4tinU册上语英级年七.ppt
- Fw58国际金融课件金融学8章节.ppt
- 1版标目新教人件课2doirepkcapkcabyms’erehW4tinU册上语英级年七.ppt
文档评论(0)