GrammarDlg.cpp
上传用户:tenhai
上传日期:2021-02-19
资源大小:492k
文件大小:2k
源码类别:

组合框控件

开发平台:

Visual C++

  1. // GrammarDlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include <afxdlgs.h>
  5. #include "prop.h"
  6. #include "GrammarDlg.h"
  7. #ifdef _DEBUG
  8. #define new DEBUG_NEW
  9. #undef THIS_FILE
  10. static char THIS_FILE[] = __FILE__;
  11. #endif
  12. /////////////////////////////////////////////////////////////////////////////
  13. // CGrammarDlg dialog
  14. CGrammarDlg::CGrammarDlg(CWnd* pParent /*=NULL*/)
  15. : CDialog(CGrammarDlg::IDD, pParent)
  16. {
  17. //{{AFX_DATA_INIT(CGrammarDlg)
  18. // NOTE: the ClassWizard will add member initialization here
  19. //}}AFX_DATA_INIT
  20. }
  21. void CGrammarDlg::DoDataExchange(CDataExchange* pDX)
  22. {
  23. CDialog::DoDataExchange(pDX);
  24. //{{AFX_DATA_MAP(CGrammarDlg)
  25. DDX_Control(pDX, IDC_GRAMMARLST, m_glist);
  26. //}}AFX_DATA_MAP
  27. }
  28. BEGIN_MESSAGE_MAP(CGrammarDlg, CDialog)
  29. //{{AFX_MSG_MAP(CGrammarDlg)
  30. ON_BN_CLICKED(IDLOAD, OnLoad)
  31. ON_LBN_DBLCLK(IDC_GRAMMARLST, OnDblclkGrammarlst)
  32. ON_WM_DESTROY()
  33. //}}AFX_MSG_MAP
  34. END_MESSAGE_MAP()
  35. /////////////////////////////////////////////////////////////////////////////
  36. // CGrammarDlg message handlers
  37. void CGrammarDlg::OnLoad() 
  38. {
  39. // TODO: Add your control notification handler code here
  40. CFileDialog fdlg(TRUE);
  41. fdlg.DoModal();
  42. CString loaded;
  43. loaded=fdlg.GetPathName();
  44. m_curg=loaded;
  45. int nIndex=m_glist.AddString(LPCTSTR(loaded));
  46. m_glist.SetSel(nIndex, TRUE);
  47. }
  48. void CGrammarDlg::OnDblclkGrammarlst() 
  49. {
  50. // TODO: Add your control notification handler code here
  51. int nIndex=m_glist.GetCurSel();
  52. m_glist.GetText(nIndex, m_curg);
  53. OnOK();
  54. }
  55. void CGrammarDlg::OnOK()
  56. {
  57. CDialog::OnOK();
  58. }
  59. BOOL CGrammarDlg::OnInitDialog() 
  60. {
  61. CDialog::OnInitDialog();
  62. int i, n=m_gcache.GetCount();
  63. for (i=0; i<n; i++){
  64. CString str=m_gcache.RemoveHead();
  65. m_glist.AddString(str);
  66. }
  67. //m_glist=m_gcache;
  68. // TODO: Add extra initialization here
  69. return TRUE;  // return TRUE unless you set the focus to a control
  70.               // EXCEPTION: OCX Property Pages should return FALSE
  71. }
  72. void CGrammarDlg::OnDestroy() 
  73. {
  74. //m_gcahe=m_glist;
  75. int i, n=m_glist.GetCount();
  76. CString str;
  77. for (i=0; i<n; i++)
  78. {
  79. m_glist.GetText(i, str);
  80. m_gcache.AddTail(LPCTSTR(str));
  81. }
  82. CDialog::OnDestroy();
  83. // TODO: Add your message handler code here
  84. }