SetupDlg.cpp
上传用户:guangzhiyw
上传日期:2007-01-09
资源大小:495k
文件大小:4k
源码类别:

ICQ/即时通讯

开发平台:

Visual C++

  1. // SetupDlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "server.h"
  5. #include "SetupDlg.h"
  6. #include <odbcinst.h>
  7. #ifdef _DEBUG
  8. #define new DEBUG_NEW
  9. #undef THIS_FILE
  10. static char THIS_FILE[] = __FILE__;
  11. #endif
  12. /////////////////////////////////////////////////////////////////////////////
  13. // CSetupDlg dialog
  14. CSetupDlg::CSetupDlg(CWnd* pParent /*=NULL*/)
  15. : CDialog(CSetupDlg::IDD, pParent)
  16. {
  17. //{{AFX_DATA_INIT(CSetupDlg)
  18. m_strIP = _T("");
  19. m_strPort = _T("");
  20. m_strPwd = _T("");
  21. m_uSendNum = 0;
  22. m_strUid = _T("");
  23. m_strDS = _T("");
  24. m_strBroadcastPwd = _T("");
  25. //}}AFX_DATA_INIT
  26. }
  27. void CSetupDlg::DoDataExchange(CDataExchange* pDX)
  28. {
  29. CDialog::DoDataExchange(pDX);
  30. //{{AFX_DATA_MAP(CSetupDlg)
  31. DDX_Control(pDX, IDC_LISTPOST, m_ListPost);
  32. DDX_Text(pDX, IDC_IP, m_strIP);
  33. DDX_Text(pDX, IDC_PORT, m_strPort);
  34. DDX_Text(pDX, IDC_PWD, m_strPwd);
  35. DDX_Text(pDX, IDC_SENDPORT, m_uSendNum);
  36. DDV_MinMaxUInt(pDX, m_uSendNum, 1, 10);
  37. DDX_Text(pDX, IDC_UID, m_strUid);
  38. DDX_Text(pDX, IDC_DATASOURCE, m_strDS);
  39. DDX_Text(pDX, IDC_BROADCASTPWD, m_strBroadcastPwd);
  40. //}}AFX_DATA_MAP
  41. }
  42. BEGIN_MESSAGE_MAP(CSetupDlg, CDialog)
  43. //{{AFX_MSG_MAP(CSetupDlg)
  44. ON_BN_CLICKED(IDC_ADD, OnAdd)
  45. ON_BN_CLICKED(IDC_DELETE, OnDelete)
  46. ON_BN_CLICKED(IDC_DEFAULT_SETUP, OnDefaultSetup)
  47. ON_BN_CLICKED(IDC_CONFIG_DS, OnConfigDs)
  48. //}}AFX_MSG_MAP
  49. END_MESSAGE_MAP()
  50. /////////////////////////////////////////////////////////////////////////////
  51. // CSetupDlg message handlers
  52. void CSetupDlg::OnAdd() 
  53. {
  54. CEdit* pEdit=(CEdit*)GetDlgItem(IDC_PORT);
  55. CString str;
  56. pEdit->GetWindowText(str);
  57. if(pEdit->GetWindowTextLength()==0)
  58. {
  59. pEdit->SetWindowText("");
  60. pEdit->SetFocus();
  61. return;
  62. }
  63. for(int i=0;i<str.GetLength();i++)
  64. if(str.GetAt(i)<'0'||str.GetAt(i)>'9')
  65. {
  66. pEdit->SetWindowText("");
  67. pEdit->SetFocus();
  68. return;
  69. }
  70. m_ListPost.AddString(str);
  71. pEdit->SetWindowText("");
  72. }
  73. void CSetupDlg::OnDelete() 
  74. {
  75. int mIndex=0;
  76. mIndex=m_ListPost.GetCurSel();
  77. if(mIndex==LB_ERR)
  78. return;
  79. m_ListPost.DeleteString(mIndex);
  80. }
  81. void CSetupDlg::OnOK() 
  82. {
  83. UpdateData();
  84. CString strPort,st;
  85. for(int i=0;i<m_ListPost.GetCount();i++)
  86. {
  87. m_ListPost.GetText(i,st);
  88. if(i!=0)
  89. st=","+st;
  90. strPort+=st;
  91. }
  92. CString tt;
  93. tt.Format("%d",m_uSendNum);
  94. WritePrivateProfileString("数据库", "DSN",m_strDS,SETUPFILE);
  95. WritePrivateProfileString("数据库", "UID",m_strUid,SETUPFILE);
  96. WritePrivateProfileString("数据库", "PWD",m_strPwd,SETUPFILE);
  97. WritePrivateProfileString("网络设置","发送端口数",tt,SETUPFILE);
  98. WritePrivateProfileString("网络设置","发送广播密码",m_strBroadcastPwd,SETUPFILE);
  99. WritePrivateProfileString("网络设置","接受端口",strPort,SETUPFILE);
  100. MessageBox("修改的设置,只有在下次启动时,才能生效!");
  101. CDialog::OnOK();
  102. }
  103. BOOL CSetupDlg::OnInitDialog() 
  104. {
  105. CDialog::OnInitDialog();
  106. for(int i=0;i<m_aStr.GetSize();i++)
  107. m_ListPost.AddString(m_aStr.GetAt(i));
  108. char name[20];
  109. hostent * hostinfo=NULL;
  110. if(gethostname(name,sizeof(name)) == 0)
  111. {
  112. hostinfo = gethostbyname(name);
  113. if(hostinfo!= NULL)
  114. {
  115. m_strIP= inet_ntoa (*(struct in_addr *)*hostinfo->h_addr_list);
  116. }
  117. }
  118.   UpdateData(FALSE);
  119. return TRUE; 
  120. }
  121. void CSetupDlg::OnDefaultSetup() 
  122. {
  123. m_ListPost.ResetContent();
  124. m_uSendNum=DEFAULT_SEND_NUM;
  125. m_strBroadcastPwd=DEFAULT_BROADCAST_PWD;
  126. m_strDS=DEFAULT_DSN;
  127. m_strPwd=DEFAULT_DATAS_PWD;
  128. m_strUid=DEFAULT_UID;
  129. char rtemp[50],sztemp[20];
  130. strcpy(rtemp,DEFAULT_RECV_PORT_STR);
  131. int i,j=0;
  132. for(i=0;rtemp[i];i++)
  133. {
  134. if(rtemp[i]==',')
  135. {
  136. sztemp[j]='';
  137. m_ListPost.AddString(sztemp);
  138. j=0;
  139. }
  140. else
  141. sztemp[j++]=rtemp[i];
  142. }
  143. sztemp[j]='';
  144. m_ListPost.AddString(sztemp);
  145. UpdateData(FALSE);
  146. }
  147. void CSetupDlg::OnConfigDs() 
  148. {
  149. SQLConfigDataSource(NULL,NULL,NULL,NULL);
  150. }