龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VC开发 >

一个好用的VC DBGRID[图](3)

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
CString m_strPass;//口令 CString m_strSource;//数据源名 CString m_strSql;//查询sql CString m_strUser;//用户名 在类CDemo2Dlg中加入下面的几个成员变量 CGridCtrl m_Grid; COdbcDBGR

    CString  m_strPass;//口令
CString  m_strSource;//数据源名
CString  m_strSql;//查询sql
CString  m_strUser;//用户名

  在类CDemo2Dlg中加入下面的几个成员变量

CGridCtrl m_Grid;
COdbcDBGRIDFILE *m_pMapFile;
CImageList m_ImageList;
CDatabase m_db;
  当然你要在CDemo2Dlg的声明文件中加入

#include "gridctrl.h"
#include "OdbcDBGRIDFILE.h"
  在CDemo2Dlg::DoDataExchange(CDataExchange* pDX)函数中加入DDX_Control(pDX, IDC_GRIDODBC, m_Grid);

  在CDemo2Dlg的构造函数中加入

m_pMapFile = NULL;
  步骤三

  用ClassWizard生成CDemo2Dlg的CDemo2Dlg::OnNotify消息响应函数,在这个函数中,输入如下的代码

BOOL CDemo2Dlg::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult)
{
   if (wParam == (WPARAM)m_Grid.GetDlgCtrlID())
   {
     *pResult = 1;
     GV_DISPINFO *pDispInfo = (GV_DISPINFO*)lParam;
     if (GVN_GETDISPINFO == pDispInfo->hdr.code)
     {
       SetGridItem(pDispInfo);
       return TRUE;
     }
   }
   return CDialog::OnNotify(wParam, lParam, pResult);
}
  在上面的代码中,SetGridItem(pDispInfo)是我们自己加的函数,在这个函数里我们设置当前要显示的数据

  步骤四

  为CDemo2Dlg加入查询按钮的响应函数OnBtnquery()

  下面是这个函数的代码

void CDemo2Dlg::OnBtnquery()
{
     this->Release();/*这个函数用于释放资源的*/
     CString strConn;
   UpdateData(TRUE);
   strConn.Format("ODBC;DSN=%s;UID=%s;PWD=%s",m_strSource,m_strUser, m_strPass);
     BOOL bResult = m_db.Open(strConn);
   if(bResult == FALSE)
   {
       return;
   }/*上面的代码用于连接数据库*/
   m_pMapFile = new COdbcDBGRIDFILE(&m_Grid, &m_db, m_strSql, "c:csl.txt");
   m_pMapFile->InitGrid();/*初始化函数,用于创建内存映射文件等*/
   }
  在上面的代码中,调用了COdbcDBGRIDFILE的构造函数,它的原型是

精彩图集

赞助商链接