中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第10章 Visual C++编程实例

C++程序设讠 H 第10章Ⅴ usual++编程实例 10.1MFC编程流程 10.2常用MFC类和消息处理 10.3对话框的应用 10.4菜单的应用 10.5工具栏应用
C++程序设计 第10章 Visual C++编程实例 10.1 MFC编程流程 10.2 常用MFC类和消息处理 10.3 对话框的应用 10.4 菜 单 的 应 用 10.5 工具栏应用

C++程序设讠 H 10.1MFC编程流程 在普通的C/C++程序中,可以看到程序从main函数 开始到结束的所有代码,但在 Visual c+中MFC封装了 部分类,同时也隐藏了一部分代码,因此我们看不 到源程序的所有代码,例如从项目的所有源文件中找 不到main函数。 基本对话框的MFC程序流程图如图10-1所示
C++程序设计 10.1 MFC编程流程 在普通的C/C++程序中,可以看到程序从main函数 开始到结束的所有代码,但在Visual C++中MFC封装了 一部分类,同时也隐藏了一部分代码,因此我们看不 到源程序的所有代码,例如从项目的所有源文件中找 不到main函数。 基本对话框的MFC程序流程图如图10-1所示

C++程序设讠 H 程序开始 生成 Cina飾一个实例 初始化全局对象 Afx winMain( 的函数体 初始化句柄 退出句柄 WingMan 消息循环 的函数体 退出句柄 程序结束 图10-1
C++程序设计 图 10-1 程序开始 生成CwinApp的一个实例, 初始化全局对象 WindMain() 的函数体 初始化句柄 AfxWinMain() 的函数体 退出句柄 消息循环 退出句柄 程序结束

C++程序设讠 H 个MFC程序运行的一般过程如下: (1)生成 CwinApp的一个实例(调用 CwinApp的构造函数), 初始化全局对象; (2)Win32入口程序函数 Winmain调用函数 AfWinmain (3) AfxWinmain调用函数 CwinApp的成员函数 rInitInstance; (4) AfxWinmain调用函数 CwinApp的成员函数Run; (5) Afx Winmain函数返回到 Winmain, Winmain结束,程序 结束
C++程序设计 一个MFC程序运行的一般过程如下: (1) 生成CwinApp的一个实例(调用CwinApp的构造函数), 初始化全局对象; (2) Win32入口程序函数WinMain调用函数AfxWinMain; (3) AfxWinMain调用函数CwinApp的成员函数InitInstance; (4) AfxWinMain调用函数CwinApp的成员函数Run; (5) AfxWinMain函数返回到WinMain,WinMain结束,程序 结束

C++程序设讠 H 例10-1吹泡泡程序。每当用户在窗口客户区中按 下鼠标左键时即可产生一个泡泡(彩色圆形) 设计思路:显示一个泡泡所需的数据包括其位置 和大小,在MFC中可用其包含矩形表示。可设置一数 组,每当用户按下鼠标左键时,就产生一个泡泡的数 据并存入数组中。最后,由框架窗口类的 OnPaint函 数显示所有的泡泡
C++程序设计 例10-1 吹泡泡程序。每当用户在窗口客户区中按 下鼠标左键时即可产生一个泡泡(彩色圆形)。 设计思路:显示一个泡泡所需的数据包括其位置 和大小,在MFC中可用其包含矩形表示。可设置一数 组,每当用户按下鼠标左键时,就产生一个泡泡的数 据并存入数组中。最后,由框架窗口类的OnPaint()函 数显示所有的泡泡

C++程序设讠 H #include<afxwin h #define maX bubble 250 class CMy Wnd: public CFrame Wnd CRect m rectBubble MAX BUbble int m nBubblecount public CMy Wndo im bUbble Count=0;
C++程序设计 #include #define MAX_BUBBLE 250 class CMyWnd:public CFrameWnd { CRect m_rectBubble[MAX_BUBBLE]; int m_nBubbleCount; public: CMyWnd() {m_nBubbleCount=0;}

C++程序设讠 H protected afx msg void OnLButtonDown UINT nFlags, CPoint point afx msg void OnPaint DECLARE MESSAGE MAPO 消息映射 BEGIN MESSAGE MAP(CMy Wnd, CFrame Wnd) ON WM LBUTTONDOWNO ON WM PAINTO END MESSAGE MAPO
C++程序设计 protected: afx_msg void OnLButtonDown(UINT nFlags,CPoint point); afx_msg void OnPaint(); DECLARE_MESSAGE_MAP() }; //消息映射 BEGIN_MESSAGE_MAP(CMyWnd,CFrameWnd) ON_WM_LBUTTONDOWN() ON_WM_PAINT() END_MESSAGE_MAP()

C++程序设讠 H ∥框架窗口类的成员函数 void CMy Wnd: OnLButtonDown qUINT nFlags, CPoint point if(m nBubble Count<MAX BUBBLE) int r=rand(%050+10 CRect rect(point x-r, point. y-r, point x+r, point y+r) m rect Bubble[m nBubble Count=rect m bUbble Count++ InvalidateRect(rect, FALSE)
C++程序设计 //框架窗口类的成员函数 void CMyWnd::OnLButtonDown(UINT nFlags,CPoint point) { if(m_nBubbleCount<MAX_BUBBLE) { int r=rand()%50+10; CRect rect(point.x-r,point.y-r,point.x+r,point.y+r); m_rectBubble[m_nBubbleCount]=rect; m_nBubbleCount++; InvalidateRect(rect,FALSE); }

C++程序设讠 H void CMy Wnd: OnPainto CPaintdc dc(this) CBrush brushNew CPen penNey brushNew. Create Solid Brush(rGB(rando%0255, rando%25 5, rand(90255) penNe. CreatePen(PS SOLID, 1, RGB(255,0,0)) dc Selectobject(&brushNew) dc Selectobject( &penNew)
C++程序设计 } void CMyWnd::OnPaint() { CPaintDC dc(this); CBrush brushNew; CPen penNew; brushNew.CreateSolidBrush(RGB(rand()%255,rand()%25 5,rand()%255)); penNew.CreatePen(PS_SOLID,1,RGB(255,0,0)); dc.SelectObject(&brushNew); dc.SelectObject(&penNew);

C++程序设讠 H for(int i=0; K<m nUbble Count; i++) dc ellipse(m rectBubble[]) 应用程序类 class CMyApp public CWinApp public BOOL Initinstance(;; BOOL CMyApp: nitInstanceo
C++程序设计 for(int i=0;i<m_nBubbleCount;i++) dc.Ellipse(m_rectBubble[i]); } //应用程序类 class CMyApp:public CWinApp { public: BOOL InitInstance(); }; BOOL CMyApp::InitInstance()
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《单片机相关电子图书资料》第十一章 PIC 单片机的 C 语言编程.pdf
- 《单片机相关电子图书资料》精彩51单片机教程.pdf
- 《单片机相关电子图书资料》51单片机C编程.pdf
- 山东大学:《Visual C++程序设计》第4章 C++的流程控制语句(张晓如).ppt
- 山东大学:《Visual C++程序设计》第10章 构造函数和析构函数(张晓如).ppt
- 山东大学:《Visual C++程序设计》第14章 输入/输出流类库(张晓如).ppt
- 山东大学:《Visual C++程序设计》第12章 类的其他特性(张晓如).ppt
- 山东大学:《Visual C++程序设计》第13章 运算符重载(张晓如).ppt
- 山东大学:《Visual C++程序设计》第11章 继承和派生类(张晓如).ppt
- 山东大学:《Visual C++程序设计》第6章 数组(张晓如).ppt
- 山东大学:《Visual C++程序设计》第8章 指针和引用(张晓如).ppt
- 山东大学:《Visual C++程序设计》第5章 函数和编译预处理(张晓如).ppt
- 山东大学:《Visual C++程序设计》第2章 数据类型、运算符和表达式(张晓如).ppt
- 山东大学:《Visual C++程序设计》第9章 类和对象(张晓如).ppt
- 山东大学:《Visual C++程序设计》第3章 简单的输入/输出(张晓如).ppt
- 山东大学:《Visual C++程序设计》第7章 结构体、共同体 和枚举类型(张晓如).ppt
- 山东大学:《Visual C++程序设计》第1章 C++概述(张晓如).ppt
- 江苏科技大学电子信息学院计算机系:《VC++实验指导书》.doc
- 江苏科技大学电子信息学院计算机系:《VC++实验指导书》(计12个实验).doc
- 山东大学:高性能感应电机电流控制研究(硕士学位论文,程金路).pdf
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第10讲 对象数组和指针及对象作为函数参数.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第11讲 静态成员及友元.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第12讲 派生类的概念.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第13讲 派生的构造函数和析构函数.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第14讲 多继承.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第15讲 赋值兼容.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第16讲 多态性与虚.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第17讲 抽象类.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第18讲 运算符重载.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第19讲 几种常见的运算符重载及类型转换函数.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第1讲 面向对象程序设计概述.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第20讲 模板.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第21讲 用指针处理链表.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第21讲 模板应用.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第22讲 C++的输入和输出.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第23讲 文件输入和输出.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第24讲 综合应用举例.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第2讲 C++基础.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第3讲 基本数据类型.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第4讲 函数.ppt