ChildFrm.cpp
上传用户:hngjqc
上传日期:2007-01-02
资源大小:25k
文件大小:3k
源码类别:

RichEdit

开发平台:

Visual C++

  1. // ChildFrm.cpp : implementation of the CChildFrame class
  2. //
  3. #include "stdafx.h"
  4. #include "OverWrite.h"
  5. #include "ChildFrm.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. /////////////////////////////////////////////////////////////////////////////
  12. // CChildFrame
  13. static UINT Indicators[] =
  14. {
  15. ID_SEPARATOR,           // status line indicator
  16. ID_SEPARATOR,
  17. ID_INDICATOR_OVERWRITE,
  18. ID_INDICATOR_CAPS,
  19. ID_INDICATOR_NUM,
  20. ID_SEPARATOR,
  21. };
  22. IMPLEMENT_DYNCREATE(CChildFrame, CMDIChildWnd)
  23. BEGIN_MESSAGE_MAP(CChildFrame, CMDIChildWnd)
  24. //{{AFX_MSG_MAP(CChildFrame)
  25. // NOTE - the ClassWizard will add and remove mapping macros here.
  26. //    DO NOT EDIT what you see in these blocks of generated code !
  27. ON_UPDATE_COMMAND_UI(ID_INDICATOR_OVERWRITE, OnUpdateOverwrite)
  28. //}}AFX_MSG_MAP
  29. END_MESSAGE_MAP()
  30. /////////////////////////////////////////////////////////////////////////////
  31. // CChildFrame construction/destruction
  32. CChildFrame::CChildFrame()
  33. {
  34. m_bOverwrite = FALSE;
  35. }
  36. CChildFrame::~CChildFrame()
  37. {
  38. }
  39. BOOL CChildFrame::PreCreateWindow(CREATESTRUCT& cs)
  40. {
  41. // TODO: Modify the Window class or styles here by modifying
  42. //  the CREATESTRUCT cs
  43. if( !CMDIChildWnd::PreCreateWindow(cs) )
  44. return FALSE;
  45. return TRUE;
  46. }
  47. /////////////////////////////////////////////////////////////////////////////
  48. // CChildFrame diagnostics
  49. #ifdef _DEBUG
  50. void CChildFrame::AssertValid() const
  51. {
  52. CMDIChildWnd::AssertValid();
  53. }
  54. void CChildFrame::Dump(CDumpContext& dc) const
  55. {
  56. CMDIChildWnd::Dump(dc);
  57. }
  58. #endif //_DEBUG
  59. /////////////////////////////////////////////////////////////////////////////
  60. // CChildFrame message handlers
  61. BOOL CChildFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) 
  62. {
  63. if (!m_wndStatus.CreateEx(this,SBT_TOOLTIPS ,
  64. WS_CHILD | WS_VISIBLE | CBRS_BOTTOM ,IDS_STATUS))
  65. {
  66. TRACE0("Failed to create status bar in child framen");
  67. return CMDIChildWnd::OnCreateClient(lpcs, pContext);
  68. }
  69. m_wndStatus.SetIndicators(Indicators,sizeof(Indicators)/sizeof(UINT));
  70. // Setting the pane infos
  71. m_wndStatus.SetPaneInfo(0, m_wndStatus.GetItemID( 0 ),SBPS_STRETCH, NULL );
  72. m_wndStatus.SetPaneInfo(1, m_wndStatus.GetItemID( 1 ),SBPS_STRETCH, NULL );
  73. m_wndStatus.SetPaneInfo(2, m_wndStatus.GetItemID( 2 ),SBT_OWNERDRAW, 19  );
  74. m_wndStatus.SetPaneInfo(3, m_wndStatus.GetItemID( 3 ),SBT_OWNERDRAW, 18  );
  75. m_wndStatus.SetPaneInfo(4, m_wndStatus.GetItemID( 4 ),SBT_OWNERDRAW, 22  );
  76. m_wndStatus.SetPaneInfo(5, m_wndStatus.GetItemID( 5 ),SBPS_NOBORDERS, 14  );
  77. m_wndStatus.GetStatusBarCtrl().SetTipText(5, "Doubleclick for Info");
  78. m_wndStatus.SetStatusBarFlag(0);
  79. return CMDIChildWnd::OnCreateClient(lpcs, pContext);
  80. }
  81. //////////////////////////////////////////////////////////////////
  82. //
  83. // Method:      OnUpdateOverwrite() 
  84. //
  85. // Function:    Updating the status line, if view is in overwrite mode
  86. //
  87. // Parameter:   CCmdUI *pCmdUI
  88. //
  89. // Return:  void
  90. //
  91. void CChildFrame::OnUpdateOverwrite(CCmdUI* /*pCmdUI */) 
  92. {
  93. CRect cPaneRect;
  94. m_wndStatus.GetItemRect(2, &cPaneRect);
  95.     m_wndStatus.InvalidateRect(cPaneRect, FALSE);
  96. }