windows编程实验报告
蓝森智
辛金良 李龙龙
实
设计型
综合型 创新型
验 处理鼠标消息和模拟鼠标消息
名
实验
√
类型
称
实 实验目的:熟练掌握鼠标消息的类型和鼠标消息的处理;理解和掌握模拟鼠标消息的方
验 法。
目 要求:
的 3. 熟悉对各种鼠标消息。
或 4. 掌握对鼠标消息的模拟和处理。
要
求
1) 建立 MFC 单文档应用程序,实例的项目名为“MySingle”,框架会自动生成 CMySingleApp 类、
// 枚举CMySingleDoc类中的点集数据
int i, j ;
for ( i = 0; i < MAX_X_NUM; i++ )
{
for ( j = 0; j < MAX_Y_NUM; j++ )
{
// 检测指定点的状态,如果为TRUE则在指定位置绘制红点
if ( pDoc->GetGridStatus(i,j) )
1) 使用应用程序创建基于对话框的 MFC 程序。
2) 使用资源编辑器,在主界面添加一个按钮“IDC_CREATE_DIALOG”用来创建模态对话框。
3) 在“资源视图”中添加一个对话框,ID 为“IDD_MODAL_DIALOG”.
4) 为“IDC_CREATE_DIALOG”添加基于 CDialog 类的 CMyModalDialog 类。
院 系: 计算机科学学院
专 业: 计算机科学与技术
年 级:
Hale Waihona Puke 2008 级课程名称: windows 编程
组 员: 蓝森智(08061013)
辛金良(08061058)
李龙龙(08061028)
指导教师:
程鹏
2011 年 10 月 20 日
年 2008
级 专
计算机科学与技术 业
班号
一(1)
学号 姓名
08061013 蓝森智
实
设计型
验 模态和非模态对话框的建立
名
实验
√
类型
称
实
验 实验目的:使用 MFC 实现模态和非模态对话框。
目 要求:
的 1. 理解模态和非模态对话框的原理和区别。
或 2. 掌握使用 MFC 实现模态和非模态对话框的步骤和方法。
要
求
08061058 08061028
辛金良 综合型
李龙龙 创新型
使用 MFC 实现模态对话框
实验结果:
实 验 结 果 分 析 及 心 得 体 会
心得体会:通过本次实验,我掌握了 MFC 中各个按钮控件的使用方法和如何使用这些控件 完成一些特定的功能,为今后的学习奠定了基础。
成
绩
评
教师签名:
定
2011 年 月 日
年 2008 级
级 专
计算机科学与技术
业
一(1) 班号
学号 姓名
08061013 08061058 08061028
执行效果如下:
组 内 分 工
无 ( 可 选 )
实 验 结 果 分 析 及 心 得 体 会
心得体会:了对话框模态对话框、非模态对话框、属性对话框(多页面切换、向导对话框)、 通用对话框(打开文件、另存为对话框、字体对话框、颜色对话框)的基本原理、实现方法、 简单编程实例。
成
绩
评
教师签名:
定
2011 年 月 日
{
int x = START_POS_X + GRID_SIZE * i ;
int y = START_POS_Y + GRID_SIZE * j ;
mdc.Ellipse ( x, y, x + GRID_SIZE, y + GRID_SIZE ) ;
}
}
}
// 把内存DC绘制到屏幕DC
pDC->BitBlt( 0, 0, WndRect.Width(), WndRect.Height(), &mdc, 0, 0, SRCCOPY ) ;
程
PtPen.CreatePen ( PS_SOLID, 1, RGB(0,0,0) ) ;
)
mdc.SelectObject ( &PtPen ) ;
PtBrush.CreateSolidBrush ( RGB(255,0,0) ) ;
mdc.SelectObject ( &PtBrush ) ;
CMainFrame 类、CMySingleDoc 类、CMySingleView 类。 2) 在 CMySingleDoc 类中添加数据存储结构与操作方法。
实 验 原 理 ( 算 法 3) 在 CMySingleView 中添加对 WM_REASEBKGND 消息的响应,删除背景绘制效果。 流 程 )
年 2008 级
级 专
计算机科学与技术
业
一(1) 班号
学号 姓名
08061013 08061058 08061028
蓝森智
辛金良 李龙龙
实
设计型
综合型 创新型
验 按钮控件的使用方法
名
实验
√
类型
称
实
验
实验目的:熟练掌握使用按钮控件来响应用户界面的操作,完成相应的功能。
目
要求:
的
1. 掌握对各种按钮控件的使用。
5) 为“IDC_CREATE_DIALOG”添加响应。代码如下:
实
CMyModalDialog dlg ;
验
dlg.DoModal () ;
原
执行后效果下
理
(
算
法
流
程
)
使用 Win32 API 实现模态对话框 1) 使用应用程序向导创建基于对话框的 MFC 程序。 2) 使用资源编辑器,在主界面添加一个按钮“IDC_CREATE_DIALOG”来创建模态对话框。 3) 在“资源视图”中添加一个对话框,ID 为“IDD_MODAL_DIALOG”. 4) 定义对话框的消息处理过程如下:
{
for ( int j = 0; j < MAX_Y_NUM; j++)
ar >> this->grid[i][j] ;
}
}
}
组 内 分 工
无 ( 可 选 )
实验结果:
实 验 结 果 分 析 及 心 得 体 会
心得体会:通过本次实验,我掌握了 MFC 中各个按钮控件的使用方法和如何使用这些控件 完成一些特定的功能,为今后的学习奠定了基础。
CRect WndRect ;
this->GetWindowRect ( &WndRect ) ;
this->ScreenToClient ( &WndRect ) ;
CDC
mdc ;
// 内存DC
CBitmap bmp ;
// 临时位图,为内存DC提供绘图环境
CPen FramePen ;
// 画矩形框使用画笔
成
绩
评
教师签名:
定
2011 年 月 日
mdc.SelectObject ( &bmp ) ;
实
FramePen.CreatePen ( PS_SOLID, 3, RGB(0,0,0) ) ;
验
mdc.SelectObject ( &FramePen ) ;
原
BkBrush.CreateSolidBrush ( RGB(128,128,128) ) ;
//删除临时GDI对象
bmp.DeleteObject () ;
FramePen.DeleteObject () ;
PtPen.DeleteObject () ;
BkBrush.DeleteObject () ;
PtBrush.DeleteObject () ;
mdc.DeleteDC() ;
} 5) 在 CMySingleView 中添加对 WM_LBTTONUP 消息的响应。
或
2. 掌握对各种按钮事件的响应。
要
求
1) 在对话框编辑器中设计界面,如下图。
实 验 原 理 ( 算 法 流 程 2) 定义按钮控件对象。4 个单选按钮和 6 个复选按钮分别被定义为: )
3) 初始化设置。
4) 添加对“确定”按钮的响应。
实 验 原 理 ( 算 法 流 程 )
组 内 分 工
无 ( 可 选 )
执行后,可以创建多个非模态窗口,也可以把程序的焦点切回到父窗体。效果如下。
使用 Win32 API 实现非模态对话框 1) 使用应用程序向导创建基于对话框的 MFC 程序。 2) 使用资源编辑器,在主界面添加一个按钮“IDC_CREATE_DIALOG”用来创建模态对话框。 3) 在“资源视图”中添加一个对话框,ID 为“IDD_NOMODAL_DIALOG”。 4) 定义对话框的消息处理过程,代码方法与实现模态对话框相似。 5) 为“IDC_CREATE_DIALOG”按钮添加响应,代码如下:
验
return ;
原
CSingleDoc* pDoc = GetDocument();
理
if ( pDoc )
(
{
算
int x = ( point.x - START_POS_X ) / GRID_SIZE ;
法
int y = ( point.y - START_POS_Y ) / GRID_SIZE ;
4) 在 CMySingleView::OnDraw 函数中添加绘图功能,代码如下。