实验三使用文档视图模式进行程序设计.docVIP

  • 37
  • 0
  • 约2.59千字
  • 约 6页
  • 2016-05-24 发布于重庆
  • 举报

实验三使用文档视图模式进行程序设计.doc

实验三使用文档视图模式进行程序设计

实验三 使用文档视图模式进行程序设计 实验目的 熟悉使用Windows控件,使用MFC进行基于文档视图模式可视化程序设计。 实验环境 硬件环境:奔3以上处理器,512MB以上内存空间 软件环境:windows2000以上操作系统,VC6.0编译环境。 实验内容与完成情况 建立一个基于单文档的应用程序,最后一步为view视图类选择基类为CFormView。 添加一个空间listctrl,其属性要设置为view :report。勾选single selection。 引入ADO组件。 在StdAfx.h文件中加上以下代码: #import C:\Program Files\Common Files\System\ado\msado15.dll named_guids rename(EOF,adoEOF),rename(BOF,adoBOF) using namespace ADODB; msado15.dll是ADO的组件对象 3. 为视图类添加两个变量 _RecordsetPtr m_pRecordset; _ConnectionPtr m_pConnection; 为智能指针,对数据库的连接操作都要通过这个两个指针 为视图类添加一个函数void OnInitADOCon();进行数据库连接 初始化智能指针m_pConnection; m_pConnection.CreateInstance(ADODB.Connection); 建立连接 CString strConnect = Provider = Microsoft.Jet.OLEDB.4.0;Data Source = 学生.mdb; Persist Security Info = False; m_pConnection-Open((_bstr_t)strConnect, , , adModeUnknown); 定义一个学生类,作为数据库中学生表的一个映射类。 在函数void CTSETView::OnInitialUpdate()中初始化控件。 插入表头: 各个参数的含义//参数1.新列,2.表头,3.对齐方式,4.列宽,5.子项索引 m_cList.InsertColumn(0,学号,LVCFMT_LEFT,50, 0); 连接数据库: 调用函数 OnInitADOCon(); 将数据库信息显示到控件上: 在此要用到智能指针m_pRecordset; 一下两句进行循环 while(!m_pRecordset-adoEOF) m_pRecordset-MoveNext(); 显示数据 :m_cList.InsertItem(0, ); //无此句,无任何内容 m_cList.SetItemText(0, 0, (char*)(_bstr_t)m_pRecordset-GetCollect(学号)); 至此数据库连接成功,运行显示: 6. 添加添加和删除快捷菜单: 插入一个菜单 为视图类添加WM_CONTEXTMENU消息处理函数:OnContextMenu CMenu popMenu;//声明菜单对象 popMenu.LoadMenu(IDR_MENU_POP);//加载菜单资源 popMenu.GetSubMenu(0)-TrackPopupMenu(TPM_LEFTALIGN, point.x, point.y, this);//得到子菜单指针。显示弹出菜单,并跟踪所选项 再插入一个对话框实现对数据表的增删修改: 为对话框声明一个类,并为各个控件声明合适的变量 为菜单项编写函数实现菜单功能: 添加学生信息: 右击显示快捷菜单,单击添加弹出对话框:填入信息, 点击确定实现学生信息的添加 右击显示快捷菜单,单击删除 如果之前没选中删除项择提示: 否则删除成功: 出现的问题与对问题的解决方法 1. AfxMessageBox(数据库连接失败!); 用第二句替换原先的CString strConnect // CString strConnect = DRIVER = {Microsoft Access Driver (*.mdb)};\ // uid=;pwd=;DBQ=学生.mdb;; CString strConnect = Provider = Microsoft.Jet.OLEDB.4.0;Data Source = 学生.mdb; Persist Security Info = False; m_pConnection-Open((_bstr_t)strConnect, , , adModeUnknown); OnInitADOCon(); /

文档评论(0)

1亿VIP精品文档

相关文档