一个好用的VC DBGRID
2007-11-01 20:23:02 来源:WEB开发网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();/*初始化函数,用于创建内存映射文件等*/
}
更多精彩
赞助商链接