第10章Windows编程.pdf
《第10章Windows编程.pdf》由会员分享,可在线阅读,更多相关《第10章Windows编程.pdf(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2012-10-241面向对象程序设计教程面向对象程序设计教程第10章 WINDOWS编程地空学院地信系中国地质大学地空学院地信系中国地质大学教学目标教学目标WINDOWS编程的基本思想编程的基本思想MFC程序的基本结构程序的基本结构消息映射消息映射2012-10-242学习要求学习要求理解理解WINDOWS的基本编程思想的基本编程思想了解消息传递机制了解消息传递机制了解了解MFC程序的组成及各部分的作用程序的组成及各部分的作用掌握在视图中输出信息掌握在视图中输出信息掌握消息处理函数的编制掌握消息处理函数的编制授 课 内 容授 课 内 容10.1 WINDOWS编程的基本思想编程的基本思想10
2、.2 MFC编程编程10.3 单文档界面(单文档界面(SDI)应用程序)应用程序10.4 在窗口的客户区输出文字和图形在窗口的客户区输出文字和图形10.5编制消息处理函数编制消息处理函数调试技术调试技术程序设计举例程序设计举例2012-10-24310.1 WINDOWS编程的基本思想编程的基本思想所有的所有的Windows应用程序都是消息驱动的;应用程序都是消息驱动的;消息处理是消息处理是windows应用程序的核心;应用程序的核心;消息就是操作系统通知应用程序某件事情已经发生的一种方式;消息就是操作系统通知应用程序某件事情已经发生的一种方式;当用户键入、移动鼠标或双击鼠标,或者用户改变窗口
3、的大小,都将向适当的窗口发送消息当用户键入、移动鼠标或双击鼠标,或者用户改变窗口的大小,都将向适当的窗口发送消息一个窗口可以向另一个窗口发送消息,并且大多数窗口通过向其他窗口发送一个稍有不向的消息来响应消息。一个窗口可以向另一个窗口发送消息,并且大多数窗口通过向其他窗口发送一个稍有不向的消息来响应消息。与所有的与所有的Windows应用程序一样,应用程序一样,MFC应用程序也要处理消息应用程序也要处理消息消息的种类消息的种类在在windows系统中,大约有近千种消息。系统中,大约有近千种消息。消息大致可以分为消息大致可以分为3类,(类,(1)标准的)标准的widows消息消息键盘消息、鼠标消息
4、、窗口消息。键盘消息、鼠标消息、窗口消息。(2)控件消息)控件消息从控件传给系统的消息(从控件传给系统的消息(BN_CLICK)由系统发送给控件的消息()由系统发送给控件的消息()(3)命令消息)命令消息菜单项、工具栏按钮、加速键等用户界面对象发送的菜单项、工具栏按钮、加速键等用户界面对象发送的WM_ COMMAND(ID_FILE_OPEN)2012-10-244消息的发送和接收消息的发送和接收图图10.1 事件驱动原理事件驱动原理10.2 MFC编程编程Microsoft提供了一个基础类库提供了一个基础类库MFC(Microsoft Foundation Class),其中包含用来开发),
5、其中包含用来开发C+应用程序和应用程序和Windows应用程序的一组类。应用程序的一组类。在本课程中,我们以两种方式使用类:在本课程中,我们以两种方式使用类:程序框架,如CView,CDocument类(难度大,数量少)局部应用,如CString,CRect,CFile等(难度小,数量较多)2012-10-245典型的典型的Windows应用程序结构应用程序结构控制台应用程序(控制台应用程序(1-9章)章)基于框架窗口的应用程序(二个类)基于框架窗口的应用程序(二个类)基于对话框的应用程序(基于对话框的应用程序(14章涉及)章涉及)基于文档基于文档/视图结构的应用程序(本教材的主要程序结构)视
6、图结构的应用程序(本教材的主要程序结构)10.3 单文档界面(单文档界面(SDI)应用程序)应用程序四个主要类四个主要类主函数主函数WinMain()隐藏隐藏CWinApp派生出派生出CMyApp 类类注:注:开始时,完全理解四个类是困难的;决定什么时候调什么函数是Windows的事情,初学者应重点学习编制相应的消息响应函数!2012-10-24610.4 在窗口的客户区输出文字和图形在窗口的客户区输出文字和图形SDI版的“版的“Hello,VC+”通过通过Workspace的的ClassView迅速定位到迅速定位到OnDraw函数,并加入代码:void CMyView:OnDraw(CDC*
7、pDC)CMyDoc*pDoc=GetDocument();ASSERT_VALID(pDoc);/TODO:add draw code for native data herepDC-Rectangle(10,10,110,110);pDC-TextOut(15,50,Hello world!);函数,并加入代码:void CMyView:OnDraw(CDC*pDC)CMyDoc*pDoc=GetDocument();ASSERT_VALID(pDoc);/TODO:add draw code for native data herepDC-Rectangle(10,10,110,110)
8、;pDC-TextOut(15,50,Hello world!);学习编程的提示学习编程的提示很难在开始将向导生成的全部程序搞清楚;很难在开始将向导生成的全部程序搞清楚;很难在开始将某个类的全部方法(成员函数)掌握,如很难在开始将某个类的全部方法(成员函数)掌握,如CDC类的方法类的方法在开始时,最重要的是:在开始时,最重要的是:以什么方法建立消息处理函数搞清楚数据的 定义、初始化、修改、使用的位置及至少一种方法(以某个例子为记忆依托)CDC的最常用方法(将频繁使用)2012-10-247CDC类的重要成员函数类的重要成员函数文字信息显示文字信息显示BOOL TextOut(int x,int
9、 y,LPCTSTR lpszString)画线画线CPoint MoveTo(int x,int y);BOOL LineTo(int x,int y);绘制矩形绘制矩形BOOL Rectangle(int x1,int y1,int x2,int y2);获取客户区的坐标获取客户区的坐标void GetClientRect(LPRECT lpRect);如何获取如何获取CDC的环境(指针)的环境(指针)在在OnDraw中中void CMyView:OnDraw(CDC*pDC)pDC-Rectangle(10,10,110,110);pDC-TextOut(15,50,Hello worl
10、d!);在其它函数中在其它函数中CClientDC dc(this);dc.Rectangle(10,10,110,110);dc.TextOut(15,50,Hello world!);2012-10-248增强的增强的OnDraw函数函数(例例10-1 改进改进)CRect rectClient,rectTitle;int nWidth=100;int nHeight=40;GetClientRect(&rectClient);/得到当前客户区的尺寸得到当前客户区的尺寸rectTitle.left=(rectClient.Width()-nWidth)/2;rectTitle.top=(r
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 10 Windows 编程
限制150内