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

对话框与窗口

开发平台:

Visual C++

  1. // DialogNewControl.cpp : implementation file
  2. //
  3. // This file is a part of the XTREME TOOLKIT PRO MFC class library.
  4. // (c)1998-2008 Codejock Software, All Rights Reserved.
  5. //
  6. // THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE
  7. // RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN
  8. // CONSENT OF CODEJOCK SOFTWARE.
  9. //
  10. // THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED
  11. // IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO
  12. // YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A
  13. // SINGLE COMPUTER.
  14. //
  15. // CONTACT INFORMATION:
  16. // support@codejock.com
  17. // http://www.codejock.com
  18. //
  19. /////////////////////////////////////////////////////////////////////////////
  20. #include "stdafx.h"
  21. #include "commandbarsdesigner.h"
  22. #include "DialogNewControl.h"
  23. #include "MainFrm.h"
  24. #ifdef _DEBUG
  25. #define new DEBUG_NEW
  26. #undef THIS_FILE
  27. static char THIS_FILE[] = __FILE__;
  28. #endif
  29. /////////////////////////////////////////////////////////////////////////////
  30. // CDialogNewControl dialog
  31. CDialogNewControl::CDialogNewControl(CWnd* pParent /*=NULL*/)
  32. : CDialog(CDialogNewControl::IDD, pParent)
  33. {
  34. //{{AFX_DATA_INIT(CDialogNewControl)
  35. m_strCaption = _T("");
  36. //}}AFX_DATA_INIT
  37. m_bGenerateId = TRUE;
  38. }
  39. void CDialogNewControl::DoDataExchange(CDataExchange* pDX)
  40. {
  41. CDialog::DoDataExchange(pDX);
  42. //{{AFX_DATA_MAP(CDialogNewControl)
  43. DDX_Control(pDX, IDC_COMBO_TYPE, m_comboType);
  44. DDX_Control(pDX, IDC_COMBO_ID, m_comboId);
  45. DDX_Control(pDX, IDC_COMBO_CATEGORY, m_comboCategory);
  46. DDX_Text(pDX, IDC_EDIT_CAPTION, m_strCaption);
  47. DDX_CBString(pDX, IDC_COMBO_CATEGORY, m_strCategory);
  48. DDX_CBString(pDX, IDC_COMBO_ID, m_strId);
  49. DDX_CBString(pDX, IDC_COMBO_TYPE, m_strType);
  50. //}}AFX_DATA_MAP
  51. }
  52. BEGIN_MESSAGE_MAP(CDialogNewControl, CDialog)
  53. //{{AFX_MSG_MAP(CDialogNewControl)
  54. ON_EN_CHANGE(IDC_EDIT_CAPTION, OnChangeEditCaption)
  55. ON_CBN_EDITCHANGE(IDC_COMBO_CATEGORY, OnEditchangeComboCategory)
  56. ON_CBN_SELCHANGE(IDC_COMBO_CATEGORY, OnSelchangeComboCategory)
  57. ON_CBN_EDITCHANGE(IDC_COMBO_ID, OnEditchangeComboId)
  58. //}}AFX_MSG_MAP
  59. END_MESSAGE_MAP()
  60. /////////////////////////////////////////////////////////////////////////////
  61. // CDialogNewControl message handlers
  62. BOOL CDialogNewControl::OnInitDialog()
  63. {
  64. CDialog::OnInitDialog();
  65. CXTPControls* pControls = ((CMainFrame*)AfxGetMainWnd())->GetActiveEmbeddedFrame()->m_pControls;
  66. ASSERT(pControls);
  67. for (int i = 0; i < pControls->GetCount(); i++)
  68. {
  69. CXTPControl* pControl = pControls->GetAt(i);
  70. if (m_comboCategory.FindStringExact(0, pControl->GetCategory()) == CB_ERR)
  71. {
  72. m_comboCategory.AddString(pControl->GetCategory());
  73. }
  74. }
  75. for (int j = 1; j < _countof(lpTypes); j++)
  76. {
  77. if (lpTypes[j])
  78. {
  79. m_comboType.AddString(lpTypes[j]);
  80. }
  81. }
  82. m_comboType.SetCurSel(0);
  83. CResourceManager* pResourceManager = ((CMainFrame*)AfxGetMainWnd())->GetActiveEmbeddedFrame()->ResourceManager();
  84. ASSERT(pResourceManager);
  85. CMapResources* pResources = pResourceManager->GetResources();
  86. POSITION pos = pResources->GetStartPosition();
  87. while (pos)
  88. {
  89. CResourceInfo* pInfo;
  90. CString strCaption;
  91. pResources->GetNextAssoc(pos, strCaption, (CObject*&)pInfo);
  92. m_comboId.AddString(strCaption);
  93. }
  94. return TRUE;  // return TRUE unless you set the focus to a control
  95.               // EXCEPTION: OCX Property Pages should return FALSE
  96. }
  97. void CDialogNewControl::GenerateID()
  98. {
  99. if (m_bGenerateId)
  100. {
  101. CString strCaption = StripChars(m_strCaption);
  102. CString strCategory;
  103. m_comboCategory.GetWindowText(strCategory);
  104. strCategory = StripChars(strCategory);
  105. CString strId = _T("ID");
  106. if (!strCategory.IsEmpty()) strId += _T("_") + strCategory;
  107. if (!strCaption.IsEmpty()) strId += _T("_") + strCaption;
  108. m_comboId.SetWindowText(strId);
  109. }
  110. }
  111. void CDialogNewControl::OnChangeEditCaption()
  112. {
  113. UpdateData();
  114. GenerateID();
  115. }
  116. void CDialogNewControl::OnEditchangeComboCategory()
  117. {
  118. GenerateID();
  119. }
  120. void CDialogNewControl::OnSelchangeComboCategory()
  121. {
  122. int nIndex = m_comboCategory.GetCurSel();
  123. if (nIndex != CB_ERR)
  124. {
  125. CString strCategory;
  126. m_comboCategory.GetLBText(nIndex, strCategory);
  127. m_comboCategory.SetWindowText(strCategory);
  128. }
  129. GenerateID();
  130. }
  131. void CDialogNewControl::OnEditchangeComboId()
  132. {
  133. m_bGenerateId = FALSE;
  134. }
  135. void CDialogNewControl::OnOK()
  136. {
  137. UpdateData();
  138. CDialog::OnOK();
  139. }