StartupDlg.cpp
上传用户:hysujiao87
上传日期:2007-12-02
资源大小:156k
文件大小:3k
源码类别:

ICQ/即时通讯

开发平台:

C/C++

  1. // StartupDlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "QQClient.h"
  5. #include "StartupDlg.h"
  6. #include "RegistryDlg.h"
  7. #include "QQSocket.h"
  8. #include "Communication.h"
  9. #include "xmlparser.h"
  10. #ifdef _DEBUG
  11. #define new DEBUG_NEW
  12. #undef THIS_FILE
  13. static char THIS_FILE[] = __FILE__;
  14. #endif
  15. /////////////////////////////////////////////////////////////////////////////
  16. // CStartupDlg dialog
  17. CStartupDlg::CStartupDlg(CWnd* pParent /*=NULL*/)
  18. : CDialog(CStartupDlg::IDD, pParent)
  19. {
  20. //{{AFX_DATA_INIT(CStartupDlg)
  21. _password = _T("");
  22. _userID = _T("");
  23. //}}AFX_DATA_INIT
  24. }
  25. void CStartupDlg::DoDataExchange(CDataExchange* pDX)
  26. {
  27. CDialog::DoDataExchange(pDX);
  28. //{{AFX_DATA_MAP(CStartupDlg)
  29. DDX_Text(pDX, IDC_EDIT_PASSWORD, _password);
  30. DDV_MaxChars(pDX, _password, 8);
  31. DDX_Text(pDX, IDC_EDIT_USERID, _userID);
  32. DDX_Control(pDX, IDC_IPADDRESS, _IPCtrl);
  33. //}}AFX_DATA_MAP
  34. }
  35. BEGIN_MESSAGE_MAP(CStartupDlg, CDialog)
  36. //{{AFX_MSG_MAP(CStartupDlg)
  37. ON_BN_CLICKED(IDC_BTN_LOGON, OnBtnLogOn)
  38. ON_BN_CLICKED(IDC_BTN_REG, OnBtnReg)
  39. //}}AFX_MSG_MAP
  40. END_MESSAGE_MAP()
  41. /////////////////////////////////////////////////////////////////////////////
  42. // CStartupDlg message handlers
  43. void CStartupDlg::OnBtnLogOn() 
  44. {
  45. // TODO: Add your control notification handler code here
  46. UpdateData(TRUE);
  47. _serverIP = getServerIPAddr();
  48. CCommunication comm;
  49. if (comm.init(_serverIP) != S_OK)
  50. return ;
  51. if (comm.sendLogonRequest(_userID, _password) != S_OK)
  52. return ;
  53. CXMLParser response;
  54. HRESULT ret = comm.receiveResponse(response);
  55. if (ret != S_OK)
  56. return ;
  57. CElement *root = response.get_root();
  58. _nickname = root->getChildContent(_T("nickname"));
  59. EndDialog(IDOK);
  60. }
  61. void CStartupDlg::OnBtnReg() 
  62. {
  63. // TODO: Add your control notification handler code here
  64. CRegistryDlg dlg;
  65. if (dlg.DoModal() != IDOK)
  66. return ;
  67. CString serverIP = getServerIPAddr();
  68. CCommunication comm;
  69. if (comm.init(serverIP) != S_OK)
  70. return ;
  71. if (comm.sendRegisterRequest(dlg._userID, dlg._password, dlg._nickname) != S_OK)
  72. return ;
  73. CXMLParser response;
  74. HRESULT ret = comm.receiveResponse(response);
  75. if (ret != S_OK)
  76. return ;
  77. AfxMessageBox(_T("注册成功"));
  78. _userID = dlg._userID;
  79. _password = dlg._password;
  80. UpdateData(FALSE);
  81. }
  82. BOOL CStartupDlg::OnInitDialog()
  83. {
  84. CDialog::OnInitDialog();
  85. // TODO:  Add extra initialization here
  86. _IPCtrl.SetAddress(127, 0, 0, 1);
  87. return TRUE;  // return TRUE unless you set the focus to a control
  88. // EXCEPTION: OCX Property Pages should return FALSE
  89. }