windows实验报告正式版

  • 格式:doc
  • 大小:606.55 KB
  • 文档页数:22

院 系: 计算机科学学院 专 业: 计算机科学与技术 年 级: 2011级 课程名称: Windows编程 学 号: 1106xxxx 姓 名: xx 指导教师: 杨喜敏

2014年 5 月 5 日 年级 2011级 班 号 计科一大班 时 间 专业 计算机科学与技术 地 点 实验名称

实验一: 模态和非模态对话框的建立 学 号 1106xxxx

姓 名 xx 实 验 目 的 或 要 求

实验目的:使用MFC实现模态和非模态对话框。 实验要求: 1. 理解模态和非模态对话框的原理和区别。 2. 掌握使用MFC实现模态和非模态对话框的步骤和方法。

实 验 原 理 ( 算 法 流 程 )

使用MFC实现模态对话框 1) 使用应用程序创建基于对话框的MFC程序。 2) 使用资源编辑器,在主界面添加一个按钮“IDC_CREATE_DIALOG”用来创建模态对话框。 3) 在“资源视图”中添加一个对话框,ID为“IDD_MODAL_DIALOG”. 4) 为“IDC_CREATE_DIALOG”添加基于CDialog类的CMyModalDialog类。 5) 为“IDC_CREATE_DIALOG”添加响应。代码如下: CMyModalDialog dlg ; dlg.DoModal () ; 执行后效果下

使用Win32 API实现模态对话框 1) 使用应用程序向导创建基于对话框的MFC程序。 2) 使用资源编辑器,在主界面添加一个按钮“IDC_CREATE_DIALOG”来创建模态对话框。 3) 在“资源视图”中添加一个对话框,ID为“IDD_MODAL_DIALOG”. 4) 定义对话框的消息处 5) 为按钮“IDC_CREATE_DIALOG”添加消息响应。 执行效果如下

使用MFC实现非模态对话框 1) 使用应用程序向导创建基于对话框的MFC程序。 2) 使用资源编辑器,在主界面添加一个按钮“IDC_CREATE_DIALOG”用来创建模态对话框。 3) 在“资源视图”中添加一个对话框,ID为“IDD_NOMODAL_DIALOG”。 4) 为“IDC_CREATE_DIALOG”添加基于CDialog类的CMyNoModalDialog类。 5) 为“IDC_CREATE_DIALOG”添加响应。代码如下:

执行后,可以创建多个非模态窗口,也可以把程序的焦点切回到父窗体。效果如下。 使用Win32 API实现非模态对话框 1) 使用应用程序向导创建基于对话框的MFC程序。 2) 使用资源编辑器,在主界面添加一个按钮“IDC_CREATE_DIALOG”用来创建模态对话框。 3) 在“资源视图”中添加一个对话框,ID为“IDD_NOMODAL_DIALOG”。 4) 定义对话框的消息处理过程,代码方法与实现模态对话框相似。 5) 为“IDC_CREATE_DIALOG”按钮添加响应,代码如下:

执行效果如下: 组 内 分 工 ( 可 选 )

实 验 结 果 分 析 及 心 得 体 会

成 绩 评 定 教师签名:

2014年 月 日 年级 2011级 班 号 计科一大班

时 间

专业 计算机科学与技术

地 点

实验名称

实验二:按钮控件的使用方法 学 号 1106xxxx

姓 名 xx 实 验 目 的 或 要 求

实验目的:熟练掌握使用按钮控件来响应用户界面的操作,完成相应的功能。 要求: 1. 掌握对各种按钮控件的使用。 2. 掌握对各种按钮事件的响应。

实 验 原 理 ( 算 法 流 程 ) 新建一个对话框,并添加以下按键,布局如下: 定义按钮控件,添加四个单选按钮盒6个复选框按钮:

对按钮进行初始化: this->addr1.SetCheck(BST_CHECKED); this->game1.SetCheck(BST_CHECKED); this->game2.SetCheck(BST_CHECKED); this->game3.SetCheck(BST_CHECKED); this->game4.SetCheck(BST_CHECKED); this->game5.SetCheck(BST_CHECKED); this->game6.SetCheck(BST_CHECKED);

双击确定按钮,进入按钮编辑区: void CChar3Dlg::OnButton1() { // TODO: Add your control notification handler code here CString szMsg = ""; szMsg += TEXT("您的所在地:");

if (this->addr1.GetCheck()==BST_CHECKED) { szMsg += TEXT("北京\n"); }else if (this->addr1.GetCheck()==BST_CHECKED) { szMsg += TEXT("上海\n"); }else if (this->addr1.GetCheck()==BST_CHECKED) { szMsg += TEXT("武汉\n"); }else if (this->addr1.GetCheck()==BST_CHECKED) { szMsg += TEXT("杭州\n"); }

szMsg += TEXT("您的兴趣爱好"); if (this->game1.GetCheck()==BST_CHECKED) szMsg += TEXT("体育运动"); if (this->game1.GetCheck()==BST_CHECKED) szMsg += TEXT("影视娱乐"); if (this->game1.GetCheck()==BST_CHECKED) szMsg += TEXT("黑客技术"); if (this->game1.GetCheck()==BST_CHECKED) szMsg += TEXT("旅游观光"); if (this->game1.GetCheck()==BST_CHECKED) szMsg += TEXT("休闲棋牌"); if (this->game1.GetCheck()==BST_CHECKED) szMsg += TEXT("网络技术"); this->MessageBox(szMsg,TEXT("您的选择:"));

}

组 内 分 工 ( 可 选 ) 无 实 验 结 果 分 析 及 心 得 体 会

实验结果:

成 绩 评 定 教师签名: 2014年 月 日 年级 2011级 班 号 计科一大班 时 间 专业 计算机科学与技术 地 点 实验名称

实验三:使用GDI对象CBrush绘画图 学 号 1106xxxx

姓 名 xx 实 验 目 的 或 要 求 实验目的:熟练掌握 使用GDI绘画图;理解和掌握使用GDI对象CBrush绘画图的方法。

实 验 原 理 ( 算 法 流 程 )

首先绘画一个位图: 在文本框中画出八个方格:

定义数据结构类型和变量 初始化绘图区域和创建画刷: for (int i = 0;i<8;i++) { if(i<4) this->My_Ellipse[i].rect = new CRect(15+i*115,35,115+i*115,125); else if(i>3) this->My_Ellipse[i].rect = new CRect(15+(i-4)*115,185,115+(i-4)*115,275); }

this->My_Ellipse[0].brush.CreateSolidBrush(RGB(0,0,255)); this->My_Ellipse[1].brush.CreateHatchBrush(HS_BDIAGONAL,RGB(0,0,255)); this->My_Ellipse[2].brush.CreateHatchBrush(HS_CROSS,RGB(0,0,255)); this->My_Ellipse[3].brush.CreateHatchBrush(HS_DIAGCROSS,RGB(0,0,255)); this->My_Ellipse[4].brush.CreateHatchBrush(HS_FDIAGONAL,RGB(0,0,255)); this->My_Ellipse[5].brush.CreateHatchBrush(HS_HORIZONTAL,RGB(0,0,255)); this->My_Ellipse[6].brush.CreateHatchBrush(HS_VERTICAL,RGB(0,0,255));