TextEdit.cpp
上传用户:qiye66671
上传日期:2009-12-10
资源大小:182k
文件大小:4k
源码类别:

绘图程序

开发平台:

C/C++

  1. // TextEdit.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "eastdraw.h"
  5. #include "TextEdit.h"
  6. #include "ReginSet.h"
  7. #ifdef _DEBUG
  8. #define new DEBUG_NEW
  9. #undef THIS_FILE
  10. static char THIS_FILE[] = __FILE__;
  11. #endif
  12. /////////////////////////////////////////////////////////////////////////////
  13. // CTextEdit
  14. CTextEdit::CTextEdit()
  15. {
  16. m_IsMoving=false;
  17. m_IsOnMoving=false;
  18. m_Font=new CFont;
  19.     m_Font->CreatePointFont (100, _T ("Arial"));
  20. }
  21. CTextEdit::~CTextEdit()
  22. {
  23. }
  24. BEGIN_MESSAGE_MAP(CTextEdit, CEdit)
  25. //{{AFX_MSG_MAP(CTextEdit)
  26. ON_WM_CONTEXTMENU()
  27. ON_COMMAND(ID_UnDo, OnUnDo)
  28. ON_COMMAND(ID_Cut, OnCut)
  29. ON_COMMAND(ID_Copy, OnCopy)
  30. ON_COMMAND(ID_Past, OnPast)
  31. ON_COMMAND(ID_Delete, OnDelete)
  32. ON_COMMAND(ID_SelectAll, OnSelectAll)
  33. ON_COMMAND(ID_Move, OnMove)
  34. ON_WM_LBUTTONDOWN()
  35. ON_WM_MOUSEMOVE()
  36. ON_WM_LBUTTONUP()
  37. ON_COMMAND(ID_MENUITEM_Size, OnMENUITEMSize)
  38. ON_WM_CREATE()
  39. //}}AFX_MSG_MAP
  40. END_MESSAGE_MAP()
  41. /////////////////////////////////////////////////////////////////////////////
  42. // CTextEdit message handlers
  43. void CTextEdit::OnContextMenu(CWnd* pWnd, CPoint point) 
  44. {
  45. // TODO: Add your message handler code here
  46. CMenu menuTextEdit;
  47. menuTextEdit.LoadMenu(IDR_MENU_TextEdit);
  48. menuTextEdit.CheckMenuItem(ID_Move,m_IsMoving?MF_CHECKED:MF_UNCHECKED);
  49. menuTextEdit.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN,point.x,point.y,this);
  50. }
  51. void CTextEdit::OnUnDo() 
  52. {
  53. // TODO: Add your command handler code here
  54. CEdit::Undo();
  55. }
  56. void CTextEdit::OnCut() 
  57. {
  58. // TODO: Add your command handler code here
  59. CEdit::Cut();
  60. }
  61. void CTextEdit::OnCopy() 
  62. {
  63. // TODO: Add your command handler code here
  64. CEdit::Copy();
  65. }
  66. void CTextEdit::OnPast() 
  67. {
  68. // TODO: Add your command handler code here
  69. CEdit::Paste();
  70. }
  71. void CTextEdit::OnDelete() 
  72. {
  73. // TODO: Add your command handler code here
  74. CEdit::Clear();
  75. }
  76. void CTextEdit::OnSelectAll() 
  77. {
  78. // TODO: Add your command handler code here
  79. CEdit::SetSel(0,-1);
  80. }
  81. void CTextEdit::OnMove() 
  82. {
  83. // TODO: Add your command handler code here
  84.  
  85. m_IsMoving=!m_IsMoving;
  86. }
  87. void CTextEdit::OnLButtonDown(UINT nFlags, CPoint point) 
  88. {
  89. // TODO: Add your message handler code here and/or call default
  90. m_FirstPoint=point;
  91. CEdit::OnLButtonDown(nFlags, point);
  92. }
  93. void CTextEdit::OnMouseMove(UINT nFlags, CPoint point) 
  94. {
  95. // TODO: Add your message handler code here and/or call default
  96.  /*if(m_IsOnMoving)
  97.  { 
  98.    CRect rect;
  99.    this->GetWindowRect(&rect);
  100.    m_PositionPoint.Offset(point.x-m_FirstPoint.x,point.y-m_FirstPoint.y);
  101.    this->MoveWindow(m_PositionPoint.x,m_PositionPoint.y,rect.Width(),rect.Height(),true);
  102.    this->m_FirstPoint=point;
  103.   }
  104.   */
  105.  
  106.    CEdit::OnMouseMove(nFlags, point);
  107. }
  108. void CTextEdit::OnLButtonUp(UINT nFlags, CPoint point) 
  109. {
  110. // TODO: Add your message handler code here and/or call default
  111. /* if(m_IsOnMoving)
  112. {
  113.      CRect rect;
  114.      this->GetWindowRect(&rect);
  115.      m_PositionPoint.Offset(point.x-m_FirstPoint.x,point.y-m_FirstPoint.y);
  116.      this->MoveWindow(m_PositionPoint.x,m_PositionPoint.y,rect.Width(),rect.Height(),true);
  117.  this->m_FirstPoint=point;
  118.   m_IsOnMoving=false;
  119. }
  120. */
  121.       CEdit::OnLButtonUp(nFlags, point);
  122. }
  123. void CTextEdit::OnMENUITEMSize() 
  124. {
  125. // TODO: Add your command handler code here
  126.     CRect rect;
  127.     GetWindowRect(&rect);
  128.     CReginSet dRegDlg;
  129. dRegDlg.m_Length=rect.Width();
  130. dRegDlg.m_Width=rect.Height();
  131. if(dRegDlg.DoModal()==IDOK)
  132. {
  133. this->MoveWindow(m_PositionPoint.x,m_PositionPoint.y,dRegDlg.m_Length,dRegDlg.m_Width);
  134. }
  135. }
  136. void CTextEdit::SetMyFont(CFont *font)
  137. {
  138.    LOGFONT lfFont;
  139.    font->GetLogFont(&lfFont);
  140.   
  141.    m_Font->DeleteObject();
  142.    m_Font->CreateFontIndirect(&lfFont);
  143.    SetFont(m_Font);
  144.  
  145. }
  146. int CTextEdit::OnCreate(LPCREATESTRUCT lpCreateStruct) 
  147. {
  148. if (CEdit::OnCreate(lpCreateStruct) == -1)
  149. return -1;
  150. // TODO: Add your specialized creation code here
  151. this->SetFont(m_Font);
  152. return 0;
  153. }