1.7.3 监控管理实现过程(1)
本模块使用的数据表:tb_user
(1)创建一个对话框,打开对话框属性窗口,将对话框的ID设置为IDD_LOGIN_DIALOG,将对话框标题设置为“监控管理”。
(2)向对话框中添加一个群组控件、两个静态文本控件、3个编辑框控件、一个列表视图控件和4个按钮控件,各控件的属性设置如表1.4所示。
表1.4 控件资源设置
|
控件ID< xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> |
控 件 属 性 |
对 应 变 量 |
|
IDC_EDIT1 |
无 |
CString m_Name |
|
IDC_EDIT2 |
无 |
CString m_PassWord |
|
IDC_EDIT3 |
Multiline、Horizontal scroll、 Vertical scroll、Auto VScroll |
CString m_Log |
|
IDC_LIST1 |
View :Icon |
CListCtrl m_List |
|
IDC_BUTTONADD |
去掉Visible属性 |
CBmpButton m_OK |
|
IDC_BUTTONMOD |
去掉Visible属性 |
CBmpButton m_Cancel |
|
IDC_BUTTONDEL |
|
|
|
IDC_BUTTONLOG |
|
|
(3)在对话框的头文件中声明变量。代码如下:
CImageList m_ImageList; //定义图像列表对象 _ConnectionPtr m_pConnection; //定义连接对象指针 _RecordsetPtr m_pRecordset; //定义记录集对象指针 int m_nExpandedHeight; //对话框展开高度 int m_nNormalHeight; //对话框收缩高度 BOOL m_bExpand; //对话框是否展开 CString m_UserName; //用户名 CString m_LogPath; //日志内容
|
(4)向对话框中添加OnInitDialog方法,在对话框初始化时设置图像列表控件,并将部分对话框隐藏。代码如下:
BOOL CManagedlg::OnInitDialog() { CDialog::OnInitDialog(); m_bExpand = FALSE; CRect rcDlg, rcMarker; GetWindowRect(rcDlg); //获得窗口客户区域 m_nExpandedHeight = rcDlg.Height(); //为窗口展开的高度赋值 GetDlgItem(IDC_STATIC1)->GetWindowRect(rcMarker); //获得静态文本控件在窗口中的位置 m_nNormalHeight = (rcMarker.top - rcDlg.top); //计算窗口收缩时的高度 Display(); //收缩对话框 m_ImageList.Create(32,32,ILC_COLOR24|ILC_MASK,1,0); //创建列表视图窗口 m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON1)); //向图像列表中添加图标 m_List.SetImageList(&m_ImageList,LVSIL_NORMAL); //用列表视图控件关联图像列表 AddToList(); //向列表视图控件中添加数据 return TRUE; }
|
代码贴士
GetDlgItem:检索指定的对话框中的控制句柄。
SetImageList:使用列表视图控件关联图像列表。
(5)添加自定义函数OnInitADOConn,用于连接数据库。代码如下:
void CManagedlg::OnInitADOConn() { try { //创建连接对象实例 m_pConnection.CreateInstance("ADODB.Connection"); //设置连接字符串 CString strConnect="DRIVER={Microsoft Access Driver (*.mdb)};\ uid=;pwd=;DBQ=shujuku.mdb;"; //使用Open方法连接数据库 m_pConnection->Open((_bstr_t)strConnect,"","",adModeUnknown); } catch(_com_error e) { AfxMessageBox(e.Description()); } }
|
(6)添加自定义函数ExitConnect,用于关闭记录集并断开数据库连接。代码如下:
void CManagedlg::ExitConnect() { if(m_pRecordset!=NULL) m_pRecordset->Close(); //关闭记录集 m_pConnection->Close(); //断开数据库连接 }
|
【责任编辑:
夏书 TEL:(010)68476606】