- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第五部分 MFC程序设计
第五部分 MFC程序设计 WINDOWS编程的基本思想 所有的Windows应用程序都是消息驱动的; 消息处理是windows应用程序的核心; 消息就是操作系统通知应用程序某件事情已经发生的一种方式; 当用户键入、移动鼠标或双击鼠标,或者用户改变窗口的大小,都将向适当的窗口发送消息 一个窗口可以向另一个窗口发送消息,并且大多数窗口通过向其他窗口发送一个稍有不向的消息来响应消息。 与所有的Windows应用程序一样,MFC应用程序也要处理消息 消息的种类 在windows系统中,大约有近千种消息。 消息大致可以分为3类, (1)标准的widows消息 键盘消息、鼠标消息、窗口消息。 (2)控件消息 从控件传给系统的消息(BN_CLICK) 由系统发送给控件的消息(……) (3)命令消息 菜单项、工具栏按钮、加速键等用户界面对象发送的WM_ COMMAND(ID_FILE_OPEN) 重要的消息 键盘消息 鼠标消息 定时器消息 重画消息 消息的发送和接收 MFC编程 Microsoft提供了一个基础类库MFC(Microsoft Foundation Class),其中包含用来开发C++应用程序和Windows应用程序的一组类。 在本课程中,我们以两种方式使用类: 程序框架,如CView,CDocument类(难度大,数量少) 局部应用,如CString,CRect,CFile等(难度小,数量较多) 单文档界面(SDI)应用程序 四个主要类 主函数WinMain()隐藏 CWinApp派生出CMyApp 类 注: 开始时,完全理解四个类是困难的; 决定什么时候调什么函数是Windows的事情,初学者应重点学习编制相应的消息响应函数! 在窗口的客户区输出文字和图形 SDI版的“Hello,VC++” 通过Workspace的ClassView迅速定位到OnDraw函数,并加入代码: void CMyView::OnDraw(CDC* pDC) { CMyDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here pDC-Rectangle(10,10,110,110); pDC-TextOut(15,50,Hello world!); } 学习编程的提示 很难在开始将向导生成的全部程序搞清楚; 很难在开始将某个类的全部方法(成员函数)掌握,如CDC类的方法 在开始时,最重要的是: 以什么方法建立消息处理函数 搞清楚数据的 定义、初始化、修改、使用的位置及至少一种方法(以某个例子为记忆依托) CDC的最常用方法(将频繁使用) CDC类的重要成员函数 文字信息显示 BOOL TextOut(int x, int 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 world!);} 在其它函数中 CClientDC dc(this); dc.Rectangle(10,10,110,110); dc.TextOut(15,50,Hello world!); 增强的OnDraw函数(改进 ) CRect rectClient, rectTitle; int nWidth = 100; int nHeight = 40; GetClientRect(rectClient); //得到当前客户区的尺寸 rectTitle.left = (rectClient.Width()-nWidth)/2; rectTitle.top = (rectClient.Height()-nHeight)/2; rectTitle.right = rectTitle.left+nWidth; rectTitle.bottom = rectTitle.top+nHeight; //根据客户区尺寸计算矩形位置 pDC-Rectangle(rectTitle); pDC-TextOut(rectTit
您可能关注的文档
最近下载
- 通信技术-使用Cypress需要避免的5个E2E测试错误(图文).pdf VIP
- 2025年小学一年级新生家长会ppt课件(优质ppt).pptx VIP
- 中国信通院2025人工智能高质量数据集建设指南74页.pdf VIP
- 2025-2026学年小学音乐三年级上册(2024)苏少版(2024)教学设计合集.docx
- 新征程,'心'启航——2025年秋学期开学第一课收心班会.pptx VIP
- Unit 1 How can I get there? PartA(说课稿)-2024-2025学年人教PEP版英语六年级上册[001].docx VIP
- 良好农业规范GAP记录表格.pdf VIP
- 2025年工会相关法律法规知识竞赛试题.doc VIP
- 高等土力学李广信22应力和应变.pptx VIP
- 消失模铸造工艺技术的创新与生产实践.pdf VIP
文档评论(0)