资源描述
安阳工学院实验报告
实验项目名称
文档和视图
所属课程
Visual C++程序设计
院 系
计科系
专业班级
10计科嵌入
姓 名
学 号
201003010016
实验日期
实验地点
指导教师
实验成绩
实 验 目 的
1. 掌握菜单项的添加,以及属性的设置。
2. 学会添加命令处理函数。。
3. 熟悉状态栏的结构定义,掌握状态栏的动态创建过程。
掌握对话框的使用的基本方法,可以为其添加菜单、工具栏和状态栏。
实 验 内 容
1. 创建一个MyMenu的菜单项目。
2. 添加菜单项“显示”和“删除”。
3. 创建工具栏,并添加两个按钮,实现与菜单项“显示”和“删除”同样的功能。
4.创建新的状态栏,添加两个显示条目,一个显示时间,由菜单项和工具栏的按钮控制是否显示;另一个显示目前的状态,是显示还是删除。
实 验 步 骤
1. 打开例3-7的例子,在Visual C++2005中,执行“文件”-“打开”-“项目/解决方案”命令,打开上例中的“MyMenu.sln”文件。
2.添加串表。在资源视图中展开“MyMenu.rc”选项下的“String Table”选项,双击其下的“String Table”选项,打开字符串编辑框和字符串编辑器。
3.添加指示器面板。
4.添加消息映射函数OnMouseMove()。
5.修改OnDraw()函数,添加显示当前状态的代码。
核 心 代 码
CDC MemDC;
switch (pDoc->m_change)
{
case 1:
MemDC.CreateCompatibleDC(NULL);
MemDC.SelectObject(&m_Bitmap);
pDC->StretchBlt(12,12,m_Width,m_Height,&MemDC,12,12,m_Width,m_Height,SRCCOPY);
break;
case 2:
Invalidate(TRUE);
break;
}
CString state;
CStatusBar* pStatus;
pStatus=(CStatusBar*)AfxGetApp()->m_pMainWnd->GetDescendantWindow(ID_VIEW_STATUS_BAR);
if(pStatus)
{
switch(pDoc->m_change)
{
case 1:
state="显示 刘超师";
pStatus->SetPaneText(0,state);
break;
case 2:
state="删除 201003010016";
pStatus->SetPaneText(0,state);
break;
}
}
CString m_position;
CStatusBar* pStatus;
pStatus=(CStatusBar*)AfxGetApp()->m_pMainWnd->GetDescendantWindow(ID_VIEW_STATUS_BAR);
if(pStatus)
{
m_position.Format(L"(%3d,%3d)",point.x,point.y);
pStatus->SetPaneText(1,m_position);
}
CView::OnMouseMove(nFlags, point);
实 验 结 果 截 图
实
验
总
结
实验错误:
1>------ 已启动生成: 项目: MyMenu, 配置: Debug Win32 ------
1>正在编译...
1>MyMenuView.cpp
1>c1xx : fatal error C1023: 'Debug\MyMenu.pch' : unexpected error with pch, try rebuilding the pch
1>生成日志保存在“file://c:\Documents and Settings\Administrator\桌面\例3-7\MyMenu\MyMenu\Debug\BuildLog.htm”
1>MyMenu - 1 个错误,个警告
========== 生成: 0 已成功, 1 已失败, 0 最新, 0 已跳过==========
展开阅读全文