TestParamsDlg.cpp
上传用户:sanxfzhen
上传日期:2014-12-28
资源大小:2324k
文件大小:4k
源码类别:

多国语言处理

开发平台:

Visual C++

  1. // TestParamsDlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "TextClassify.h"
  5. #include "TestParamsDlg.h"
  6. #include "ClassifierParam.h"
  7. #include "WZDDRDLG.h"
  8. #ifdef _DEBUG
  9. #define new DEBUG_NEW
  10. #undef THIS_FILE
  11. static char THIS_FILE[] = __FILE__;
  12. #endif
  13. /////////////////////////////////////////////////////////////////////////////
  14. // CTestParamsDlg dialog
  15. CTestParamsDlg::CTestParamsDlg(CWnd* pParent /*=NULL*/)
  16. : CDialog(CTestParamsDlg::IDD, pParent)
  17. {
  18. //{{AFX_DATA_INIT(CTestParamsDlg)
  19. m_nClassifyType = 0;
  20. m_nKNN = 35;
  21. m_strResultDir = _T("");
  22. m_strTestDir = _T("");
  23. m_nDocFormat = 0;
  24. m_bCopyFiles = FALSE;
  25. m_dThreshold = 0.0;
  26. m_bEvaluation = FALSE;
  27. //}}AFX_DATA_INIT
  28. m_nClassifierType=0;
  29. }
  30. void CTestParamsDlg::DoDataExchange(CDataExchange* pDX)
  31. {
  32. CDialog::DoDataExchange(pDX);
  33. //{{AFX_DATA_MAP(CTestParamsDlg)
  34. DDX_Radio(pDX, IDC_CLASSIFYTYPE, m_nClassifyType);
  35. DDX_Text(pDX, IDC_EDIT_KNN, m_nKNN);
  36. DDV_MinMaxUInt(pDX, m_nKNN, 1, 100);
  37. DDX_Text(pDX, IDC_TXT_RESULT, m_strResultDir);
  38. DDX_Text(pDX, IDC_TXT_TEST_DIR, m_strTestDir);
  39. DDX_Text(pDX, IDC_THRESHOLD, m_dThreshold);
  40. DDV_MinMaxDouble(pDX, m_dThreshold, -100., 100.);
  41. DDX_Check(pDX, IDC_EVALUATE, m_bEvaluation);
  42. //}}AFX_DATA_MAP
  43. }
  44. BEGIN_MESSAGE_MAP(CTestParamsDlg, CDialog)
  45. //{{AFX_MSG_MAP(CTestParamsDlg)
  46. ON_BN_CLICKED(IDC_BTN_RESULTS, OnBtnResults)
  47. ON_BN_CLICKED(IDC_BTN_TEST, OnBtnTest)
  48. ON_BN_CLICKED(IDC_EVALUATE, OnEvaluate)
  49. ON_BN_CLICKED(IDC_CLASSIFYTYPE, OnClassifytype)
  50. ON_BN_CLICKED(IDC_MULTI, OnMulti)
  51. //}}AFX_MSG_MAP
  52. END_MESSAGE_MAP()
  53. /////////////////////////////////////////////////////////////////////////////
  54. // CTestParamsDlg message handlers
  55. void CTestParamsDlg::OnBtnResults() 
  56. {
  57. UpdateData(TRUE);
  58. CWzdDirDlg dlg;
  59. CString dir=dlg.GetDirectory(this,m_strResultDir);
  60. if(!dir.IsEmpty())
  61. {
  62. m_strResultDir=dir;
  63. UpdateData(FALSE);
  64. }
  65. }
  66. void CTestParamsDlg::OnBtnTest() 
  67. {
  68. UpdateData(TRUE);
  69. if(m_nDocFormat==CClassifierParam::nDF_Smart)
  70. {
  71. static char BASED_CODE szFilter[] = "All Files (*.*)|*.*||";
  72. CFileDialog cfd(TRUE,szFilter,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,szFilter,NULL);
  73. if (cfd.DoModal()==IDOK) 
  74. {
  75. m_strTestDir=cfd.GetPathName();
  76. UpdateData(FALSE);
  77. }
  78. }
  79. else if(m_nDocFormat==CClassifierParam::nDF_Directory)
  80. {
  81. CWzdDirDlg dlg;
  82. CString dir=dlg.GetDirectory(this,m_strTestDir);
  83. if(!dir.IsEmpty())
  84. {
  85. m_strTestDir=dir;
  86. UpdateData(FALSE);
  87. }
  88. }
  89. }
  90. void CTestParamsDlg::SetClassifierType(int nType)
  91. {
  92. m_nClassifierType=nType;
  93. }
  94. BOOL CTestParamsDlg::OnInitDialog() 
  95. {
  96. CDialog::OnInitDialog();
  97. if(m_nClassifierType==CClassifierParam::nCT_KNN)
  98. ::EnableWindow((GetDlgItem(IDC_EDIT_KNN))->m_hWnd,TRUE);
  99. else 
  100. ::EnableWindow((GetDlgItem(IDC_EDIT_KNN))->m_hWnd,FALSE);
  101. SetControlStatus();
  102. return TRUE;  // return TRUE unless you set the focus to a control
  103.               // EXCEPTION: OCX Property Pages should return FALSE
  104. }
  105. void CTestParamsDlg::OnEvaluate() 
  106. {
  107. // TODO: Add your control notification handler code here
  108. SetControlStatus();
  109. }
  110. void CTestParamsDlg::OnClassifytype() 
  111. {
  112. // TODO: Add your control notification handler code here
  113. SetControlStatus();
  114. }
  115. void CTestParamsDlg::OnMulti() 
  116. {
  117. // TODO: Add your control notification handler code here
  118. SetControlStatus();
  119. }
  120. void CTestParamsDlg::SetControlStatus()
  121. {
  122. UpdateData(TRUE);
  123. if(m_nClassifyType==CClassifierParam::nFT_Multi&&m_bEvaluation)
  124. {
  125. // ::EnableWindow((GetDlgItem(IDC_DOCFORMAT))->m_hWnd,FALSE);
  126. // ::EnableWindow((GetDlgItem(IDC_REUTERS))->m_hWnd,FALSE);
  127. m_nDocFormat=1;
  128. }
  129. else
  130. {
  131. // ::EnableWindow((GetDlgItem(IDC_DOCFORMAT))->m_hWnd,TRUE);
  132. // ::EnableWindow((GetDlgItem(IDC_REUTERS))->m_hWnd,TRUE);
  133. }
  134. if(m_nClassifyType==CClassifierParam::nFT_Single)
  135. ::EnableWindow((GetDlgItem(IDC_THRESHOLD))->m_hWnd,FALSE);
  136. else
  137. ::EnableWindow((GetDlgItem(IDC_THRESHOLD))->m_hWnd,TRUE);
  138. UpdateData(FALSE);
  139. }
  140. void CTestParamsDlg::OnCancel() 
  141. {
  142. // TODO: Add extra cleanup here
  143. CDialog::OnCancel();
  144. }
  145. void CTestParamsDlg::OnOK() 
  146. {
  147. // TODO: Add extra validation here
  148. CDialog::OnOK();
  149. }