MainFrm.cpp
上传用户:qzyuheng
上传日期:2013-04-28
资源大小:71k
文件大小:3k
源码类别:

词法分析

开发平台:

Visual C++

  1. // MainFrm.cpp : implementation of the CMainFrame class
  2. //
  3. #include "stdafx.h"
  4. #include "WordSeg.h"
  5. #include "MainFrm.h"
  6. #include "MPWordSeg.h"
  7. #include "MyFileApp.h"
  8. #include "MyDictionary.h"
  9. #ifdef _DEBUG
  10. #define new DEBUG_NEW
  11. #undef THIS_FILE
  12. static char THIS_FILE[] = __FILE__;
  13. #endif
  14. # if !pDict
  15. extern CMyDictionary pDict; 
  16. # endif
  17. /////////////////////////////////////////////////////////////////////////////
  18. // CMainFrame
  19. IMPLEMENT_DYNAMIC(CMainFrame, CMDIFrameWnd)
  20. BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)
  21. //{{AFX_MSG_MAP(CMainFrame)
  22. ON_WM_CREATE()
  23. ON_COMMAND(ID_OpenLexicon, OnOpenLexicon)
  24. ON_COMMAND(ID_MPWordSeg, OnMPWordSeg)
  25. //}}AFX_MSG_MAP
  26. END_MESSAGE_MAP()
  27. static UINT indicators[] =
  28. {
  29. ID_SEPARATOR,           // status line indicator
  30. ID_INDICATOR_CAPS,
  31. ID_INDICATOR_NUM,
  32. ID_INDICATOR_SCRL,
  33. };
  34. /////////////////////////////////////////////////////////////////////////////
  35. // CMainFrame construction/destruction
  36. CMainFrame::CMainFrame()
  37. {
  38. // TODO: add member initialization code here
  39. }
  40. CMainFrame::~CMainFrame()
  41. {
  42. }
  43. int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
  44. {
  45. if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1)
  46. return -1;
  47. if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
  48. | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
  49. !m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
  50. {
  51. TRACE0("Failed to create toolbarn");
  52. return -1;      // fail to create
  53. }
  54. if (!m_wndStatusBar.Create(this) ||
  55. !m_wndStatusBar.SetIndicators(indicators,
  56.   sizeof(indicators)/sizeof(UINT)))
  57. {
  58. TRACE0("Failed to create status barn");
  59. return -1;      // fail to create
  60. }
  61. // TODO: Delete these three lines if you don't want the toolbar to
  62. //  be dockable
  63. m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
  64. EnableDocking(CBRS_ALIGN_ANY);
  65. DockControlBar(&m_wndToolBar);
  66. return 0;
  67. }
  68. BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
  69. {
  70. if( !CMDIFrameWnd::PreCreateWindow(cs) )
  71. return FALSE;
  72. // TODO: Modify the Window class or styles here by modifying
  73. //  the CREATESTRUCT cs
  74. return TRUE;
  75. }
  76. /////////////////////////////////////////////////////////////////////////////
  77. // CMainFrame diagnostics
  78. #ifdef _DEBUG
  79. void CMainFrame::AssertValid() const
  80. {
  81. CMDIFrameWnd::AssertValid();
  82. }
  83. void CMainFrame::Dump(CDumpContext& dc) const
  84. {
  85. CMDIFrameWnd::Dump(dc);
  86. }
  87. #endif //_DEBUG
  88. /////////////////////////////////////////////////////////////////////////////
  89. // CMainFrame message handlers
  90. void CMainFrame::OnOpenLexicon() 
  91. {
  92. // TODO: Add your command handler code here
  93. if (pDict.myDatabaseName.IsEmpty()) 
  94. pDict.OpenMDB();
  95. else
  96. AfxMessageBox("词库已经打开");
  97. }
  98. void CMainFrame::OnMPWordSeg() 
  99. {
  100. // TODO: Add your command handler code here
  101. if (pDict.myDatabaseName.IsEmpty()) {
  102. AfxMessageBox("您没有打开词库,无法进行分词处理");
  103. return;
  104. }
  105. ProcessFiles("*","*.*",SegmentAFileMP); // 调用文件批处理函数进行分词处理
  106. }