上岸充通大 1896 1920 006 C++程序设计与实践 第8讲Windows应用程序设计 上海交通大学 机械与动力工程学院 2014.9-2015.1 上究通大粤 1B96 1920 1. MFC消息机制 2. CDialog类的结构 3. 案例介绍 1
1 C++程序设计与实践 上海交通大学 机械与动力工程学院 2014.9-2015.1 第8讲 Windows应用程序设计 1. MFC 消息机制 2. CDialog类的结构 3. 案例介绍的使用
MFC消息机制 客人进入饭店安排座位 请服务员过来点餐 服务员记录菜名 送菜 厨师找菜谱名 厨师做菜 国上清夫道大些 3/19 Windowsi程序运行原理 口Vindows/应用程序,操作系统,计算机硬件之 间的相互关系 应用程序 消息队列 3 4 操作系统 >向下的箭头3表示应用程序 可以通知操作系统执行某个 2 具体的动作 输入输出设备 国上海大学 4/19 2
2 3/19 MFC 消息机制 客人进入饭店安排座位 请服务员过来点餐 服务员记录菜名 厨师找菜谱名 厨师做菜 送菜 4/19 Windows应用程序,操作系统,计算机硬件之 间的相互关系 Windows程序运行原理 向下的箭头3 表示应用程序 可以通知操作系统执行某个 具体的动作 应用程序 消息队列 操作系统 输入输出设备 1 3 4 2
关于消息及消息队列 口向上的箭头4表示操作系统能够将输入设备的变化上传给 应用程序。 口如用户在某个程序活动时按了一下键盘,操作系统马上 能够感知到这一享件,并且能够知道用户按下的是哪一 个键,操作系统并不决定对这一事件如何作出反应,而 是将这一事件转交给应用程序,由应用程序决定如何对 这一事件作出反应。 应用程序 消息队列 3 操作系统 2 国上清夫道大些 输入输出设备 5/19 关于Windows API 口操作系统把它所能够完成的功能以函数的形式提供给应 用程序使用: 口应用程序是以函数调用的方式来通知操作系统执行相应 的功能,称为系统调用; 口这些函数的集合就是Windows操作系统提供给应用程 序编程的接口(Application Programming Interface), 简称Vindows API; ▣如CreateWindow就是一个API函数,应用程序中调用 这个函数,操作系统就会按照该函数提供的参数信息产 生一个相应的窗口; 口Windows:提供了上千个标准函数、宏和数据结构的定 义。 国上海大学 6/19 3
3 5/19 关于消息及消息队列 向上的箭头4表示操作系统能够将输入设备的变化上传给 应用程序。 如用户在某个程序活动时按了一下键盘,操作系统马上 能够感知到这一事件,并且能够知道用户按下的是哪一 个键,操作系统并不决定对这一事件如何作出反应,而 是将这一事件转交给应用程序,由应用程序决定如何对 这一事件作出反应。 应用程序 消息队列 操作系统 输入输出设备 1 3 4 2 6/19 关于Windows API 操作系统把它所能够完成的功能以函数的形式提供给应 用程序使用; 应用程序是以函数调用的方式来通知操作系统执行相应 的功能,称为系统调用; 这些函数的集合就是Windows操作系统提供给应用程 序编程的接口(Application Programming Interface), 简称Windows API; 如CreateWindow就是一个API函数,应用程序中调用 这个函数,操作系统就会按照该函数提供的参数信息产 生一个相应的窗口; Windows提供了上千个标准函数、宏和数据结构的定 义
MFC消息机制 添加事件 座位 按钮 显示文字: 菜谱 函数声明 点餐 afx_msg void OnBnClickedButton1(); BEGIN MESSAGE_MAP(CMyDlgDlg,CDialogEx) ON_WM_SYSCOMMANDO ON WM PAINTO 消息列表 ON_WM_QUERYDRAGICONO ON_BN_CLICKED(IDC BUTTON1,&CMyDlgDlg::OnBnClick END_MESSAGE_MAPO void CMyDlgDlg::OnBnClickedButton1 记录 /T0D0:在此添加控件通知处理程序代码 m_strText=按钮按下了," UpdateData(FALSE); 函数定义 做菜 倒上文通大学 7/19 MFC消息机制 MyDlg 点餐 01202092 座位 消息框 添加变量 void CMyDlgDlg::DoDataExchange(CDataEx CDialogEx::DoDataExchange(pDX): 记录 OoX.Tex(pDx,IDC_EDIT,m-Tet变量对应 菜谱 变量声明 变量赋值与更新 CString m strText; void CMyDlgDlg::OnBnClickedButton1( ∥TO00:在此 取菜与送菜 m_strText="按按下了,; 是否 UpdateData(FALSE); 送过? 国上济大学 UpdateData(TRUE) 8/19 4
4 7/19 MFC 消息机制 函数定义 函数声明 添加事件 消息列表 座位 点餐 记录 菜谱 做菜 8/19 MFC 消息机制 添加变量 消息框 变量声明 变量对应 变量赋值与更新 座位 点餐 记录 菜谱 取菜与送菜 是否 送过? UpdateData(TRUE)
MFC消息机制 MyDlg HD1202092 按钮■ 显示文字: CPaintDC dc(this:/∥用于绘制的设备上下文 dc.Rectangle(300,50,500,150):/绘制拒形框 /画斜线 dc.MoveTo(300,50); dc.LineTo(500,150); /画水平直线 dc.MoveTo(300,100); dc.LineTo(500,100); 国上海文大等 9/19 上究通大粤 1896 1920 2006 1. MFC消息机制 2. CDialoga类的结构 3.案例介绍 SHAN 5
5 9/19 MFC 消息机制 X Y 1. MFC 消息机制 2. CDialog类的结构 3. 案例介绍的使用