ExtRichEdit.cpp
上传用户:dengkfang
上传日期:2008-12-30
资源大小:5233k
文件大小:2k
源码类别:

CA认证

开发平台:

Visual C++

  1. // ExtRichEdit.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "minica.h"
  5. #include "ExtRichEdit.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. /////////////////////////////////////////////////////////////////////////////
  12. // CExtRichEdit
  13. CExtRichEdit::CExtRichEdit()
  14. {
  15. }
  16. CExtRichEdit::~CExtRichEdit()
  17. {
  18. }
  19. BEGIN_MESSAGE_MAP(CExtRichEdit, CRichEditCtrl)
  20. //{{AFX_MSG_MAP(CExtRichEdit)
  21. ON_WM_CREATE()
  22. ON_WM_LBUTTONDBLCLK()
  23. //}}AFX_MSG_MAP
  24. END_MESSAGE_MAP()
  25. /////////////////////////////////////////////////////////////////////////////
  26. // CExtRichEdit message handlers
  27. int CExtRichEdit::OnCreate(LPCREATESTRUCT lpCreateStruct) 
  28. {
  29. if (CRichEditCtrl::OnCreate(lpCreateStruct) == -1)
  30. return -1;
  31. // TODO: Add your specialized creation code here
  32. CHARFORMAT cf;
  33. cf.cbSize = sizeof (CHARFORMAT);  
  34. cf.dwMask = CFM_FACE | CFM_SIZE; 
  35. //cf.dwEffects; 
  36. cf.yHeight = 180; 
  37. //cf.yOffset; 
  38. //cf.crTextColor=RGB(250,0,0); 
  39. //cf.bCharSet; 
  40. //cf.bPitchAndFamily; 
  41. sprintf(cf.szFaceName, "MS Sans Serif"); 
  42.  
  43. SetDefaultCharFormat(cf); 
  44. return 0;
  45. }
  46. void CExtRichEdit::AddMsg(CString strMsg, COLORREF crNewColor, 
  47. BOOL bUnderLine, 
  48. BOOL bBold)
  49. {
  50. int iTotalLength = GetWindowTextLength();
  51. SetSel(iTotalLength, iTotalLength);
  52. ReplaceSel((LPCTSTR)strMsg);
  53. int iStartPos = iTotalLength;
  54. int iEndPos = GetWindowTextLength();
  55. CHARFORMAT cf;
  56. cf.cbSize = sizeof(CHARFORMAT);
  57. cf.dwMask = CFM_COLOR | CFM_BOLD | CFM_UNDERLINE;
  58. cf.dwEffects = (unsigned long)~(CFE_UNDERLINE | CFE_BOLD | CFE_AUTOCOLOR);
  59. cf.crTextColor = crNewColor;
  60. cf.dwEffects |= bUnderLine ? CFE_UNDERLINE : cf.dwEffects ;
  61. cf.dwEffects |= bBold ? CFE_BOLD : cf.dwEffects;
  62. SetSel(iStartPos, iEndPos);
  63. // TRACE(_T("AddMsg=====Start:%d, End:%d, crNewColor:%ldn"), iStartPos, iEndPos, cf.crTextColor);
  64. SetSelectionCharFormat(cf);
  65. HideSelection(TRUE, FALSE);
  66. for(int i = 0,index = 0; ; i++,index++)
  67. {
  68. index = strMsg.Find("n",index);
  69. if(index == -1)
  70. break;
  71. }
  72. LineScroll(i);//检索有几个n,就滚动几行
  73. }
  74. void CExtRichEdit::OnLButtonDblClk(UINT nFlags, CPoint point) 
  75. {
  76. // TODO: Add your message handler code here and/or call default
  77. //AfxMessageBox("OK");
  78. // SetSel(0,10);
  79. // int nCount = GetLineCount( ) ;
  80. // int iIndex = LineIndex(0);
  81. // CString str;
  82. // GetLine(10,str.GetBuffer(0),255);
  83. // AfxMessageBox(str);
  84. // CRichEditCtrl::OnLButtonDblClk(nFlags, point);
  85. }