PopupFilter.cpp
上传用户:szled88
上传日期:2015-04-09
资源大小:43957k
文件大小:3k
源码类别:

对话框与窗口

开发平台:

Visual C++

  1. // PopupFilter.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "styler.h"
  5. #include "PopupFilter.h"
  6. #include "StylerView.h"
  7. #ifdef _DEBUG
  8. #define new DEBUG_NEW
  9. #undef THIS_FILE
  10. static char THIS_FILE[] = __FILE__;
  11. #endif
  12. /////////////////////////////////////////////////////////////////////////////
  13. // CPopupFilter dialog
  14. CStringArray CPopupFilter::m_lstFilter;
  15. CPopupFilter::CPopupFilter(CWnd* pParent /*=NULL*/)
  16. : CDialog(CPopupFilter::IDD, pParent)
  17. {
  18. //{{AFX_DATA_INIT(CPopupFilter)
  19. //}}AFX_DATA_INIT
  20. m_bCheckAll = CStylerView::m_bFilterAll;
  21. m_bCheckList = CStylerView::m_bFilterList;
  22. }
  23. void CPopupFilter::DoDataExchange(CDataExchange* pDX)
  24. {
  25. CDialog::DoDataExchange(pDX);
  26. //{{AFX_DATA_MAP(CPopupFilter)
  27. DDX_Check(pDX, IDC_CHECK_ALL, m_bCheckAll);
  28. DDX_Check(pDX, IDC_CHECK_LIST, m_bCheckList);
  29. //}}AFX_DATA_MAP
  30. }
  31. BEGIN_MESSAGE_MAP(CPopupFilter, CDialog)
  32. //{{AFX_MSG_MAP(CPopupFilter)
  33. //}}AFX_MSG_MAP
  34. END_MESSAGE_MAP()
  35. /////////////////////////////////////////////////////////////////////////////
  36. // CPopupFilter message handlers
  37. BOOL CPopupFilter::OnInitDialog() 
  38. {
  39. CDialog::OnInitDialog();
  40. CListBox* pLB = (CListBox*)GetDlgItem(IDC_LIST);
  41. for (int i = 0; i < m_lstFilter.GetSize(); i++)
  42. {
  43. pLB->AddString(m_lstFilter[i]);
  44. }
  45. /* VERIFY(m_LBEditor.Initialize(this, IDC_LIST, LBE_AUTOEDIT | LBE_BUTTONS | 
  46.                         LBE_TOOLTIPS | LBE_NEWBUTTON | LBE_DELBUTTON));
  47. m_LBEditor.SetWindowText(_T(" &Items:"));*/
  48. m_LBEditor.SubclassDlgItem(IDC_LIST, this);
  49. m_LBEditor.SetListEditStyle(_T(" &Items:"), LBS_XT_DEFAULT);
  50. return TRUE;  // return TRUE unless you set the focus to a control
  51.               // EXCEPTION: OCX Property Pages should return FALSE
  52. }
  53. void CPopupFilter::SaveFilterList()
  54. {
  55. CString strPath = GetModuleDir();
  56. CString strUrl;
  57. if (PathFileExists(strPath + _T("popups.ini")))
  58. DeleteFile(strPath + _T("popups.ini"));
  59. for (int i = 0; i < m_lstFilter.GetSize(); i++)
  60. {
  61. strUrl.Format(_T("popup%i"), i);
  62. WritePrivateProfileString(_T("Popups"), strUrl, m_lstFilter[i], strPath + _T("popups.ini"));
  63. }
  64. }
  65. void CPopupFilter::OnOK() 
  66. {
  67. CListBox* pLB = (CListBox*)GetDlgItem(IDC_LIST);
  68. m_lstFilter.RemoveAll();
  69. for (int i = 0; i < pLB->GetCount(); i++)
  70. {
  71. CString str;
  72. pLB->GetText(i, str);
  73. if (!str.IsEmpty())
  74. m_lstFilter.Add(str);
  75. }
  76. SaveFilterList();
  77. UpdateData(TRUE);
  78. CStylerView::m_bFilterAll = m_bCheckAll;
  79. CStylerView::m_bFilterList = m_bCheckList;
  80. CDialog::OnOK();
  81. }
  82. void CPopupFilter::LoadFilterList()
  83. {
  84. CString strPath = GetModuleDir();
  85. TCHAR chReturn[100];
  86. CString strUrl;
  87. int nIndex = 0;
  88. strUrl.Format(_T("popup%i"), nIndex);
  89. while (GetPrivateProfileString(_T("Popups"), strUrl, _T(""), chReturn, 100, strPath + _T("popups.ini")) > 0)
  90. {
  91. CString strReturn(chReturn);
  92. if (!strReturn.IsEmpty())
  93. {
  94. m_lstFilter.Add(strReturn);
  95. }
  96. strUrl.Format(_T("popup%i"), ++nIndex);
  97. }
  98. }