FrameProp.cpp
上传用户:wpp2016
上传日期:2010-02-01
资源大小:1250k
文件大小:4k
源码类别:

Telnet服务器

开发平台:

Visual C++

  1. // FrameworkProperties.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "anywhere.h"
  5. #include "VisualFx.h"
  6. #include "FrameProp.h"
  7. #ifdef _DEBUG
  8. #define new DEBUG_NEW
  9. #undef THIS_FILE
  10. static char THIS_FILE[] = __FILE__;
  11. #endif
  12. /////////////////////////////////////////////////////////////////////////////
  13. // CFrameworkProperties dialog
  14. CFrameworkProperties::CFrameworkProperties(TVisualFramework& fx, 
  15.                                            CWnd* pParent /*=NULL*/)
  16. : CDialog(CFrameworkProperties::IDD, pParent)
  17. {
  18.   m_pFx = &fx;
  19. //{{AFX_DATA_INIT(CFrameworkProperties)
  20. //}}AFX_DATA_INIT
  21. }
  22. void CFrameworkProperties::DoDataExchange(CDataExchange* pDX)
  23. {
  24. CDialog::DoDataExchange(pDX);
  25. //{{AFX_DATA_MAP(CFrameworkProperties)
  26. DDX_Control(pDX, IDOK, m_btok);
  27. DDX_Control(pDX, IDCANCEL, m_btcancel);
  28. DDX_Control(pDX, IDC_SET, m_btset);
  29. DDX_Control(pDX, IDC_VISIBLETAB, m_VisibleTab);
  30. DDX_Control(pDX, IDC_ENABLETAB, m_EnableTab);
  31. DDX_Control(pDX, IDC_ENABLE, m_Enable);
  32. DDX_Control(pDX, IDC_LIST, m_List);
  33. //}}AFX_DATA_MAP
  34. }
  35. BEGIN_MESSAGE_MAP(CFrameworkProperties, CDialog)
  36. //{{AFX_MSG_MAP(CFrameworkProperties)
  37. ON_LBN_SELCHANGE(IDC_LIST, OnSelchangeList)
  38. ON_BN_CLICKED(IDC_ENABLE, OnEnable)
  39. ON_BN_CLICKED(IDC_ENABLETAB, OnEnabletab)
  40. ON_BN_CLICKED(IDC_VISIBLETAB, OnVisibletab)
  41. ON_BN_CLICKED(IDC_SET, OnSet)
  42. //}}AFX_MSG_MAP
  43. END_MESSAGE_MAP()
  44. /////////////////////////////////////////////////////////////////////////////
  45. // CFrameworkProperties message handlers
  46. BOOL CFrameworkProperties::OnInitDialog() 
  47. {
  48. CDialog::OnInitDialog();
  49. // TODO: Add extra initialization here
  50.   int nIndex;
  51.   TVisualFrameworkIterator it(*m_pFx);
  52.   while (!it.End()) {
  53.     TVisualObject *pObject = it.Get();
  54.     if (pObject->CanFocus()) {
  55.       nIndex = m_List.AddString(pObject->GetDescription());
  56.       m_List.SetItemData(nIndex, (DWORD)pObject);
  57.     }
  58.     it ++;
  59.   }
  60.   m_List.SetCurSel(0);
  61.   m_Enable.SetCheckStyle(CHECK_STYLE_CROSS);
  62.   m_EnableTab.SetCheckStyle(CHECK_STYLE_CROSS);
  63.   m_VisibleTab.SetCheckStyle(CHECK_STYLE_CROSS);
  64.   OnSelchangeList();
  65. return TRUE;  // return TRUE unless you set the focus to a control
  66.               // EXCEPTION: OCX Property Pages should return FALSE
  67. }
  68. void CFrameworkProperties::OnOK() 
  69. {
  70. // TODO: Add extra validation here
  71. CDialog::OnOK();
  72. }
  73. void CFrameworkProperties::OnSelchangeList() 
  74. {
  75.   int nIndex = m_List.GetCurSel();
  76.   if (nIndex > -1) {
  77.     TVisualObject  *pObject = (TVisualObject*)m_List.GetItemData(nIndex);
  78.     if (pObject->IsTabPane()) {
  79.       m_VisibleTab.EnableWindow(TRUE);
  80.       m_EnableTab.EnableWindow(TRUE);
  81.       BOOL bFlag;
  82.       pObject->IsTabVisible(bFlag);
  83.       m_VisibleTab.SetCheck(bFlag ? 1 : 0);
  84.       pObject->IsTabEnabled(bFlag);
  85.       m_EnableTab.SetCheck(bFlag ? 1 : 0);
  86.     } else {
  87.       m_VisibleTab.EnableWindow(FALSE);
  88.       m_EnableTab.EnableWindow(FALSE);
  89.     }
  90.     BOOL bEnabled;
  91.     pObject->IsEnabled(bEnabled);
  92.     m_Enable.SetCheck(bEnabled ? 1 : 0);
  93.   }
  94. }
  95. void CFrameworkProperties::OnSet() 
  96. {
  97.   int nIndex = m_List.GetCurSel();
  98.   if (nIndex > -1) {
  99.     TVisualObject  *pObject = (TVisualObject*)m_List.GetItemData(nIndex);
  100.     m_pFx->SetActivePane(pObject);
  101.     OnSelchangeList();
  102.   }
  103.   
  104. }
  105. void CFrameworkProperties::OnEnable() 
  106. {
  107.   int nIndex = m_List.GetCurSel();
  108.   if (nIndex > -1) {
  109.     TVisualObject  *pObject = (TVisualObject*)m_List.GetItemData(nIndex);
  110.     m_pFx->Enable(pObject, m_Enable.GetCheck() ? TRUE : FALSE);
  111.     OnSelchangeList();
  112.   }
  113. }
  114. void CFrameworkProperties::OnEnabletab() 
  115. {
  116.   int nIndex = m_List.GetCurSel();
  117.   if (nIndex > -1) {
  118.     TVisualObject  *pObject = (TVisualObject*)m_List.GetItemData(nIndex);
  119.     m_pFx->EnableTab(pObject, m_EnableTab.GetCheck() ? TRUE : FALSE);
  120.     OnSelchangeList();
  121.   }
  122. }
  123. void CFrameworkProperties::OnVisibletab() 
  124. {
  125.   int nIndex = m_List.GetCurSel();
  126.   if (nIndex > -1) {
  127.     TVisualObject  *pObject = (TVisualObject*)m_List.GetItemData(nIndex);
  128.     m_pFx->ShowTab(pObject, m_VisibleTab.GetCheck() ? TRUE : FALSE);
  129.     OnSelchangeList();
  130.   }
  131. }