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

ICQ/即时通讯

开发平台:

C/C++

  1. // QQServerView.cpp : implementation of the CQQServerView class
  2. //
  3. #include "stdafx.h"
  4. #include "QQServer.h"
  5. #include "QQServerDoc.h"
  6. #include "QQServerView.h"
  7. #include "MainFrm.h"
  8. #include "UserListDlg.h"
  9. #ifdef _DEBUG
  10. #define new DEBUG_NEW
  11. #undef THIS_FILE
  12. static char THIS_FILE[] = __FILE__;
  13. #endif
  14. /////////////////////////////////////////////////////////////////////////////
  15. // CQQServerView
  16. IMPLEMENT_DYNCREATE(CQQServerView, CListView)
  17. BEGIN_MESSAGE_MAP(CQQServerView, CListView)
  18. //{{AFX_MSG_MAP(CQQServerView)
  19. //}}AFX_MSG_MAP
  20. END_MESSAGE_MAP()
  21. /////////////////////////////////////////////////////////////////////////////
  22. // CQQServerView construction/destruction
  23. CQQServerView::CQQServerView()
  24. {
  25. // TODO: add construction code here
  26. }
  27. CQQServerView::~CQQServerView()
  28. {
  29. }
  30. BOOL CQQServerView::PreCreateWindow(CREATESTRUCT& cs)
  31. {
  32. // TODO: Modify the Window class or styles here by modifying
  33. //  the CREATESTRUCT cs
  34. return CListView::PreCreateWindow(cs);
  35. }
  36. /////////////////////////////////////////////////////////////////////////////
  37. // CQQServerView drawing
  38. void CQQServerView::OnDraw(CDC* pDC)
  39. {
  40. CQQServerDoc* pDoc = GetDocument();
  41. ASSERT_VALID(pDoc);
  42. // TODO: add draw code for native data here
  43. /* pDC->SelectStockObject(ANSI_FIXED_FONT);
  44. int i = 0;
  45. CRect rectClient;
  46. GetClientRect(&rectClient);
  47. int nClientLines = rectClient.Height() / m_sizeChar.cy;
  48. int nLines = pDoc->m_listMsg.GetCount();
  49. if(nLines != 0)
  50. {
  51. if(nLines > nClientLines)
  52. {
  53. int nDeleteLines = nLines - nClientLines;
  54. for(i = 0; i < nDeleteLines; i++)
  55. {
  56. pDoc->m_listMsg.RemoveHead();
  57. }
  58. nLines = nClientLines;
  59. }
  60. POSITION pos;
  61. for(i = 0; i < nLines; i++)
  62. {
  63. pos = pDoc->m_listMsg.FindIndex(i);
  64. pDC->TextOut(0, i * m_sizeChar.cy, pDoc->m_listMsg.GetAt(pos));
  65. }
  66. }*/
  67. }
  68. /////////////////////////////////////////////////////////////////////////////
  69. // CQQServerView diagnostics
  70. #ifdef _DEBUG
  71. void CQQServerView::AssertValid() const
  72. {
  73. CListView::AssertValid();
  74. }
  75. void CQQServerView::Dump(CDumpContext& dc) const
  76. {
  77. CListView::Dump(dc);
  78. }
  79. CQQServerDoc* CQQServerView::GetDocument() // non-debug version is inline
  80. {
  81. ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CQQServerDoc)));
  82. return (CQQServerDoc*)m_pDocument;
  83. }
  84. #endif //_DEBUG
  85. /////////////////////////////////////////////////////////////////////////////
  86. // CQQServerView message handlers
  87. void CQQServerView::OnInitialUpdate() 
  88. {
  89. CListView::OnInitialUpdate();
  90. // TODO: Add your specialized code here and/or call the base class
  91. CListCtrl &theCtrl = GetListCtrl();
  92. DWORD ctrlStyle = ::GetWindowLong(theCtrl.GetSafeHwnd(), GWL_STYLE);
  93. ctrlStyle &= ~LVS_ICON;
  94. ctrlStyle &= ~LVS_SMALLICON;
  95. ctrlStyle &= ~LVS_LIST;
  96. ctrlStyle |= LVS_REPORT;
  97. ::SetWindowLong(theCtrl.GetSafeHwnd(), GWL_STYLE, ctrlStyle);
  98. theCtrl.InsertColumn(0, _T("时间"));
  99. theCtrl.InsertColumn(1, _T("消息"));
  100. CRect rcClient;
  101. GetClientRect(rcClient);
  102. theCtrl.SetColumnWidth(0, (rcClient.Width() >> 3));
  103. theCtrl.SetColumnWidth(1, (rcClient.Width() - (rcClient.Width() >> 3)));
  104. }