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

ICQ/即时通讯

开发平台:

Visual C++

  1. // ServerView.cpp : implementation of the CServerView class
  2. //
  3. #include "stdafx.h"
  4. #include "Server.h"
  5. #include "msg.h"
  6. #include "ServerDoc.h"
  7. #include "ServerView.h"
  8. #ifdef _DEBUG
  9. #define new DEBUG_NEW
  10. #undef THIS_FILE
  11. static char THIS_FILE[] = __FILE__;
  12. #endif
  13. /////////////////////////////////////////////////////////////////////////////
  14. // CServerView
  15. IMPLEMENT_DYNCREATE(CServerView, CEditView)
  16. BEGIN_MESSAGE_MAP(CServerView, CEditView)
  17. //{{AFX_MSG_MAP(CServerView)
  18. ON_COMMAND(ID_EDIT_COPY, OnEditCopy)
  19. //}}AFX_MSG_MAP
  20. END_MESSAGE_MAP()
  21. /////////////////////////////////////////////////////////////////////////////
  22. // CServerView construction/destruction
  23. CServerView::CServerView()
  24. {
  25. // TODO: add construction code here
  26. }
  27. CServerView::~CServerView()
  28. {
  29. }
  30. BOOL CServerView::PreCreateWindow(CREATESTRUCT& cs)
  31. {
  32. // TODO: Modify the Window class or styles here by modifying
  33. //  the CREATESTRUCT cs
  34. BOOL bPreCreated = CEditView::PreCreateWindow(cs);
  35. cs.style &= ~(ES_AUTOHSCROLL|WS_HSCROLL); // Enable word-wrapping
  36. return bPreCreated;
  37. }
  38. /////////////////////////////////////////////////////////////////////////////
  39. // CServerView drawing
  40. void CServerView::OnDraw(CDC* pDC)
  41. {
  42. CServerDoc* pDoc = GetDocument();
  43. ASSERT_VALID(pDoc);
  44. // TODO: add draw code for native data here
  45. }
  46. /////////////////////////////////////////////////////////////////////////////
  47. // CServerView diagnostics
  48. #ifdef _DEBUG
  49. void CServerView::AssertValid() const
  50. {
  51. CEditView::AssertValid();
  52. }
  53. void CServerView::Dump(CDumpContext& dc) const
  54. {
  55. CEditView::Dump(dc);
  56. }
  57. CServerDoc* CServerView::GetDocument() // non-debug version is inline
  58. {
  59. ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CServerDoc)));
  60. return (CServerDoc*)m_pDocument;
  61. }
  62. #endif //_DEBUG
  63. /////////////////////////////////////////////////////////////////////////////
  64. // CServerView message handlers
  65. void CServerView::ShowMessage(CString str)
  66. {
  67. CEdit& Edit=GetEditCtrl();
  68. m_criticalShowMess.Lock();
  69. int len=Edit.GetWindowTextLength();
  70. Edit.SetSel(len,len);
  71. Edit.ReplaceSel(str+"rn");
  72. m_criticalShowMess.Unlock();
  73. }
  74. void CServerView::OnEditCopy() 
  75. {
  76. CServerApp * pApp=(CServerApp*)AfxGetApp();
  77. UserOnline * pUsers=pApp->m_pUsers;
  78. CServerSocket * pSocket=&pApp->m_Socket;
  79. int &NumberOnline=pApp->m_nNumberOnline;
  80. int &MaxUserId=pApp->m_nMaxUserId;
  81. for(int i=0;i<MaxUserId;i++)
  82. {
  83. if(pUsers[i].State)
  84. {
  85. CMsg3 msg;
  86. msg.index=TOTAL_ONLINE;
  87. msg.tarIP=pUsers[i].IP;
  88. msg.nPort=pUsers[i].Port;
  89. msg.Value=100;
  90. CString str;
  91. if(!pSocket->SendData(&msg))
  92. {
  93. str.Format("Send Error :%d",i);
  94. MessageBox(str);
  95. }
  96. else
  97. {
  98. str.Format("Send Ok : %d",i);
  99. MessageBox(str);
  100. }
  101. }
  102. }
  103. }