|
1.7.3 监控管理实现过程(2)
(7)添加自定义函数AddToList,用于将数据库中的数据添加到列表视图控件中。代码如下:
void CManagedlg::AddToList() { OnInitADOConn(); //连接数据库 CString sql; sql.Format("select 用户名 from tb_user ",m_Name,m_PassWord); //设置SQL语句 m_pRecordset = m_pConnection->Execute((_bstr_t)sql,NULL,adCmdText); // 根据SQL语句打开记录集 int i = 0; while(!m_pRecordset->adoEOF) { m_List.InsertItem(i,(char*)(_bstr_t)m_pRecordset->GetCollect ("用户名"),0); //向列表视图控件中插入数据 m_pRecordset->MoveNext(); //将记录集指针移动到下一条 i++; } ExitConnect(); //关闭记录集并断开数据库连接 }
| (8)处理“添加”按钮的单击事件,用于向数据库中添加新用户。代码如下:
void CManagedlg::OnButtonadd() { UpdateData(TRUE); if(m_Name.IsEmpty() || m_PassWord.IsEmpty()) //判断数据是否为空 { MessageBox("用户名或密码不能为空"); return; } OnInitADOConn(); //连接数据库 //设置SQL语句 CString sql; sql.Format("insert into tb_user (用户名,密码) values ('%s','%s')", m_Name,m_PassWord); m_pConnection->Execute((_bstr_t)sql,NULL,adCmdText); //执行SQL语句 m_pConnection->Close(); //断开数据库连接 m_List.DeleteAllItems(); //删除 列表视图控件中的数据 AddToList(); //向列表视 图控件中添加数据 }
| (9)处理“修改”按钮的单击事件,用于修改数据库中用户的密码。代码如下:
void CManagedlg::OnButtonmod() { UpdateData(TRUE); if(m_Name.IsEmpty() || m_PassWord.IsEmpty()) //判断数据是否为空 { MessageBox("用户名或密码不能为空"); return; } OnInitADOConn(); //连接数据库 //设置SQL语句 CString sql; sql.Format("update tb_user set 用户名='%s',密码='%s' where 用户名='%s' ", m_Name,m_PassWord,m_Name); m_pConnection->Execute((_bstr_t)sql,NULL,adCmdText); //执行SQL语句 m_pConnection->Close(); //断开数据库连接 m_List.DeleteAllItems(); //删除列表 视图控件中的数据 AddToList(); //向列表视图 控件中添加数据 } | (10)处理“删除”按钮的单击事件,用于删除数据库中的用户。代码如下:
void CManagedlg::OnButtondel() { UpdateData(TRUE); if(m_Name.IsEmpty()) //判断用户名是否为空 { MessageBox("用户名不能为空"); return; } OnInitADOConn(); //连接数据库 CString sql; sql.Format("delete * from tb_user where 用户名='%s' ",m_Name); //设置SQL语句 m_pConnection->Execute((_bstr_t)sql,NULL,adCmdText); //执行SQL语句 m_pConnection->Close(); //断开数据库连接 m_List.DeleteAllItems(); //删除列 表视图控件中的数据 AddToList(); //向列表视图 控件中添加数据 } | (11)处理列表视图控件的NM_CLICK事件,当单击列表视图控件中的图标时,将用户名显示在编辑框中。代码如下:
void CManagedlg::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) { int pos = m_List.GetSelectionMark(); //获得列表控件当前选择的节点 m_Name = m_List.GetItemText(pos,0); //将用户名显示到编辑框中 UpdateData(FALSE); //更新控件显示 *pResult = 0; } | (12)添加自定义函数Display,用于控制对话框的伸展和收缩。代码如下:
void CManagedlg::Display() { CRect rcDlg; GetWindowRect(rcDlg); //获得窗口的客户区域 if(m_bExpand) //判断是否展开 { //设置范围 rcDlg.SetRect( rcDlg.left, rcDlg.top, rcDlg.left + rcDlg.Width (),rcDlg.top + m_nExpandedHeight); CFile file; file.Open(m_LogPath,CFile::modeRead); //打开日志文件 DWORD size = file.GetLength(); //获得文件大小 char read[256]; file.Read(read,size); //读取文件内容 CString str=""; for(int i=0;i<size;i++) { str += read[i]; //将文件内容赋值给字符串str } m_Log = str; UpdateData(FALSE); //更新控件显示 } else { //设置范围 rcDlg.SetRect(rcDlg.left, rcDlg.top, rcDlg.left + rcDlg. Width(),rcDlg.top + m_nNormalHeight); } MoveWindow(rcDlg); //改变窗体显示范围 }
|
【责任编辑: 夏书 TEL:(010)68476606】
|