HistoryEdit.cpp
上传用户:jinandeyu
上传日期:2007-01-05
资源大小:620k
文件大小:2k
源码类别:

远程控制编程

开发平台:

WINDOWS

  1. /*
  2. *  HistoryEdit.cpp
  3. *
  4. *  Description:
  5. *    CHistoryEdit implementation
  6. *
  7. *    A CEdit subclass that allows you to display a text history
  8. *    of events.
  9. *
  10. *  Author:
  11. *    Ravi Bhavnani (ravib@datablast.net)
  12. *    Modified significantly by DilDog (dildog@l0pht.com)
  13. *
  14. *  Revision History:
  15. *    15 Mar 1998   rab   Original version
  16. */
  17. #include "stdafx.h"
  18. #include "HistoryEdit.h"
  19. #ifdef _DEBUG
  20. #define new DEBUG_NEW
  21. #undef THIS_FILE
  22. static char THIS_FILE[] = __FILE__;
  23. #endif
  24. /////////////////////////////////////////////////////////////////////////////
  25. // CHistoryEdit
  26. CHistoryEdit::CHistoryEdit()
  27. {
  28. m_bSelectable = FALSE;
  29. }
  30. CHistoryEdit::~CHistoryEdit()
  31. {
  32. }
  33. BEGIN_MESSAGE_MAP(CHistoryEdit, CEdit)
  34. //{{AFX_MSG_MAP(CHistoryEdit)
  35. ON_WM_SETFOCUS()
  36. ON_WM_PAINT()
  37. //}}AFX_MSG_MAP
  38. END_MESSAGE_MAP()
  39. /////////////////////////////////////////////////////////////////////////////
  40. // CHistoryEdit operations
  41. void CHistoryEdit::AppendString (CString str)
  42. //
  43. //  Purpose:
  44. //    Appends a text string to the history buffer.
  45. //
  46. //  Returns:
  47. //    None.
  48. //
  49. {
  50. CString   strBuffer;    // current contents of edit control
  51. // Append string
  52. GetWindowText (strBuffer);
  53. CString strAppend;
  54. strAppend.Empty();
  55. int i;
  56. for(i=0;i<str.GetLength();i++) {
  57. if(str[i]=='n') {
  58. strAppend+='r';
  59. }
  60. strAppend+=str[i];
  61. }
  62. strBuffer += strAppend;
  63. SetWindowText (strBuffer);
  64. // Scroll the edit control
  65. LineScroll (GetLineCount(), 0);
  66. }
  67. /////////////////////////////////////////////////////////////////////////////
  68. // CHistoryEdit message handlers
  69. void CHistoryEdit::OnSetFocus(CWnd* pOldWnd) 
  70. {
  71. // Don't allow user to select text
  72. if (m_bSelectable)
  73. CEdit::OnSetFocus (pOldWnd);
  74. else
  75. pOldWnd->SetFocus();
  76. }
  77. // End EditHistory.cpp
  78. void CHistoryEdit::OnPaint() 
  79. {
  80. RECT r;
  81. /*
  82. // Use a clear background
  83. CWnd *Parent=GetParent();
  84. GetClientRect(&r);
  85. MapWindowPoints(Parent,&r);
  86. Parent->InvalidateRect(&r);
  87. CPaintDC *pDC=new CPaintDC(GetParent());
  88. delete pDC;
  89. */
  90. // Use a white background
  91. CPaintDC dc(this);
  92. GetClientRect(&r);
  93. dc.FillSolidRect(&r,GetSysColor(COLOR_WINDOW));
  94. Invalidate();
  95. CEdit::OnPaint();
  96. }