Managedlg.cpp
上传用户:connie527
上传日期:2022-04-15
资源大小:4326k
文件大小:6k
源码类别:

行业应用

开发平台:

Visual C++

  1. // Managedlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "capture.h"
  5. #include "Managedlg.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. /////////////////////////////////////////////////////////////////////////////
  12. // CManagedlg dialog
  13. CManagedlg::CManagedlg(CWnd* pParent /*=NULL*/)
  14. : CDialog(CManagedlg::IDD, pParent)
  15. {
  16. //{{AFX_DATA_INIT(CManagedlg)
  17. m_Name = _T("");
  18. m_PassWord = _T("");
  19. m_Log = _T("");
  20. //}}AFX_DATA_INIT
  21. }
  22. void CManagedlg::DoDataExchange(CDataExchange* pDX)
  23. {
  24. CDialog::DoDataExchange(pDX);
  25. //{{AFX_DATA_MAP(CManagedlg)
  26. DDX_Control(pDX, IDC_LIST1, m_List);
  27. DDX_Text(pDX, IDC_EDIT1, m_Name);
  28. DDX_Text(pDX, IDC_EDIT2, m_PassWord);
  29. DDX_Text(pDX, IDC_EDIT3, m_Log);
  30. //}}AFX_DATA_MAP
  31. }
  32. BEGIN_MESSAGE_MAP(CManagedlg, CDialog)
  33. //{{AFX_MSG_MAP(CManagedlg)
  34. ON_BN_CLICKED(IDC_BUTTONADD, OnButtonadd)
  35. ON_BN_CLICKED(IDC_BUTTONMOD, OnButtonmod)
  36. ON_BN_CLICKED(IDC_BUTTONDEL, OnButtondel)
  37. ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1)
  38. ON_BN_CLICKED(IDC_BUTTON4, OnButton4)
  39. //}}AFX_MSG_MAP
  40. END_MESSAGE_MAP()
  41. /////////////////////////////////////////////////////////////////////////////
  42. // CManagedlg message handlers
  43. BOOL CManagedlg::OnInitDialog() 
  44. {
  45. CDialog::OnInitDialog();
  46. // TODO: Add extra initialization here
  47. m_bExpand = FALSE;
  48. CRect rcDlg, rcMarker;
  49. GetWindowRect(rcDlg);
  50. m_nExpandedHeight = rcDlg.Height();
  51. GetDlgItem(IDC_STATIC1)->GetWindowRect(rcMarker);
  52. m_nNormalHeight = (rcMarker.top - rcDlg.top);
  53. Display();
  54. m_ImageList.Create(32,32,ILC_COLOR24|ILC_MASK,1,0); //创建列表视图窗口
  55. //向图像列表中添加图标
  56. m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON1));
  57. m_List.SetImageList(&m_ImageList,LVSIL_NORMAL);
  58. AddToList();
  59. return TRUE;  // return TRUE unless you set the focus to a control
  60.               // EXCEPTION: OCX Property Pages should return FALSE
  61. }
  62. void CManagedlg::OnInitADOConn()
  63. {
  64. try
  65. {
  66. //创建连接对象实例
  67. m_pConnection.CreateInstance("ADODB.Connection");
  68. //设置连接字符串
  69. CString strConnect;
  70. strConnect.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s\shujuku.mdb;Persist Security Info=False",m_PathText);
  71. //使用Open方法连接数据库
  72. m_pConnection->Open((_bstr_t)strConnect,"","",adModeUnknown);
  73. }
  74. catch(_com_error e)
  75. {
  76. AfxMessageBox(e.Description());
  77. }
  78. }
  79. void CManagedlg::ExitConnect()
  80. {
  81. //关闭记录集和连接
  82.     if(m_pRecordset!=NULL)
  83. m_pRecordset->Close();
  84. m_pConnection->Close();
  85. }
  86. void CManagedlg::AddToList()
  87. {
  88. OnInitADOConn();
  89. CString sql;
  90. sql.Format("select 用户名 from tb_user ",m_Name,m_PassWord);
  91. m_pRecordset = m_pConnection->Execute((_bstr_t)sql,NULL,adCmdText);
  92. int i = 0;
  93. while(!m_pRecordset->adoEOF)
  94. {
  95. m_List.InsertItem(i,(char*)(_bstr_t)m_pRecordset->GetCollect("用户名"),0);
  96. m_pRecordset->MoveNext();
  97. i++;
  98. }
  99. ExitConnect();
  100. }
  101. void CManagedlg::OnButtonadd() 
  102. {
  103. // TODO: Add your control notification handler code here
  104. UpdateData(TRUE);
  105. if(m_Name.IsEmpty() || m_PassWord.IsEmpty())
  106. {
  107. MessageBox("用户名或密码不能为空");
  108. return;
  109. }
  110. for(int i=0;i<m_List.GetItemCount();i++)
  111. {
  112. if(m_Name == m_List.GetItemText(i,0))
  113. {
  114. MessageBox("用户名已存在");
  115. return;
  116. }
  117. }
  118. OnInitADOConn();
  119. CString sql;
  120. sql.Format("insert into tb_user (用户名,密码) values ('%s','%s')",
  121. m_Name,m_PassWord);
  122. m_pConnection->Execute((_bstr_t)sql,NULL,adCmdText);
  123. m_pConnection->Close();
  124. m_List.DeleteAllItems();
  125. AddToList();
  126. CTime m_LogTime = CTime::GetCurrentTime();
  127. CString strText;
  128. strText.Format("%st%st添加用户rn",m_UserName,m_LogTime.Format("%y-%m-%d %H:%M:%S"));
  129. CFile file;
  130. file.Open(m_LogPath,CFile::modeWrite);
  131. file.SeekToEnd();
  132. file.Write(strText,strText.GetLength());
  133. file.Close();
  134. }
  135. void CManagedlg::OnButtonmod() 
  136. {
  137. // TODO: Add your control notification handler code here
  138. UpdateData(TRUE);
  139. if(m_Name.IsEmpty() || m_PassWord.IsEmpty())
  140. {
  141. MessageBox("用户名或密码不能为空");
  142. return;
  143. }
  144. OnInitADOConn();
  145. CString sql;
  146. sql.Format("update tb_user set 用户名='%s',密码='%s' where 用户名='%s' ",
  147. m_Name,m_PassWord,m_Name);
  148. m_pConnection->Execute((_bstr_t)sql,NULL,adCmdText);
  149. m_pConnection->Close();
  150. m_List.DeleteAllItems();
  151. AddToList();
  152. CTime m_LogTime = CTime::GetCurrentTime();
  153. CString strText;
  154. strText.Format("%st%st修改用户rn",m_UserName,
  155. m_LogTime.Format("%y-%m-%d %H:%M:%S"));
  156. CFile file;
  157. file.Open(m_LogPath,CFile::modeWrite);
  158. file.SeekToEnd();
  159. file.Write(strText,strText.GetLength());
  160. file.Close();
  161. }
  162. void CManagedlg::OnButtondel() 
  163. {
  164. // TODO: Add your control notification handler code here
  165. UpdateData(TRUE);
  166. if(m_Name.IsEmpty())
  167. {
  168. MessageBox("用户名不能为空");
  169. return;
  170. }
  171. if(m_Name == "tsoft")
  172. {
  173. MessageBox("用户tsoft不能删除");
  174. return;
  175. }
  176. OnInitADOConn();
  177. CString sql;
  178. sql.Format("delete * from tb_user where 用户名='%s' ",m_Name);
  179. m_pConnection->Execute((_bstr_t)sql,NULL,adCmdText);
  180. m_pConnection->Close();
  181. m_List.DeleteAllItems();
  182. AddToList();
  183. CTime m_LogTime = CTime::GetCurrentTime();
  184. CString strText;
  185. strText.Format("%st%st删除用户rn",m_UserName,
  186. m_LogTime.Format("%y-%m-%d %H:%M:%S"));
  187. CFile file;
  188. file.Open(m_LogPath,CFile::modeWrite);
  189. file.SeekToEnd();
  190. file.Write(strText,strText.GetLength());
  191. file.Close();
  192. }
  193. void CManagedlg::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) 
  194. {
  195. // TODO: Add your control notification handler code here
  196. int pos = m_List.GetSelectionMark();
  197. m_Name  = m_List.GetItemText(pos,0);
  198. UpdateData(FALSE);
  199. *pResult = 0;
  200. }
  201. void CManagedlg::Display()
  202. {
  203. CRect rcDlg;
  204. GetWindowRect(rcDlg);
  205. if(m_bExpand)
  206. {
  207. rcDlg.SetRect( rcDlg.left, rcDlg.top, 
  208. rcDlg.left + rcDlg.Width(),
  209. rcDlg.top + m_nExpandedHeight);
  210. CFile file;
  211. file.Open(m_LogPath,CFile::modeRead);
  212. DWORD size = file.GetLength();
  213. char read[51200];
  214. file.Read(read,size);
  215. CString str="";
  216. for(int i=0;i<size;i++)
  217. {
  218. str += read[i];
  219. }
  220. m_Log = str;
  221. UpdateData(FALSE);
  222. }
  223. else
  224. {
  225. rcDlg.SetRect(rcDlg.left, rcDlg.top, 
  226. rcDlg.left + rcDlg.Width(),
  227. rcDlg.top + m_nNormalHeight);
  228. }
  229. MoveWindow(rcDlg);
  230. }
  231. void CManagedlg::OnButton4() 
  232. {
  233. // TODO: Add your control notification handler code here
  234. m_bExpand = !m_bExpand;
  235. Display();
  236. }