WindoInfoDlg.cpp
上传用户:rundaa
上传日期:2009-05-24
资源大小:44k
文件大小:4k
源码类别:

CAD

开发平台:

Visual C++

  1. // WindoInfoDlg.cpp : implementation file
  2. //
  3. #include "StdAfx.h"
  4. #include "StdArx.h"
  5. #include "resource.h"
  6. #include "WindoInfoDlg.h"
  7. #ifdef _DEBUG
  8. #define new DEBUG_NEW
  9. #undef THIS_FILE
  10. static char THIS_FILE[] = __FILE__;
  11. #endif
  12. HTREEITEM htCur, htPrev;
  13. /////////////////////////////////////////////////////////////////////////////
  14. // CWindoInfoDlg dialog
  15. CWindoInfoDlg::CWindoInfoDlg(CWnd* pParent /*=NULL*/)
  16. : CDialog(CWindoInfoDlg::IDD, pParent)
  17. {
  18. //{{AFX_DATA_INIT(CWindoInfoDlg)
  19. // NOTE: the ClassWizard will add member initialization here
  20. //}}AFX_DATA_INIT
  21. }
  22. void CWindoInfoDlg::DoDataExchange(CDataExchange* pDX)
  23. {
  24. CDialog::DoDataExchange(pDX);
  25. //{{AFX_DATA_MAP(CWindoInfoDlg)
  26. // NOTE: the ClassWizard will add DDX and DDV calls here
  27. //}}AFX_DATA_MAP
  28. }
  29. BEGIN_MESSAGE_MAP(CWindoInfoDlg, CDialog)
  30. //{{AFX_MSG_MAP(CWindoInfoDlg)
  31. // NOTE: the ClassWizard will add message map macros here
  32. //}}AFX_MSG_MAP
  33. END_MESSAGE_MAP()
  34. /////////////////////////////////////////////////////////////////////////////
  35. // CWindoInfoDlg message handlers
  36. BOOL CWindoInfoDlg::OnInitDialog() 
  37. {
  38. CDialog::OnInitDialog();
  39. m_pTreeCtrl = (CTreeCtrl*)GetDlgItem(IDC_TREE1);
  40. m_imgList.Create(16, 15, FALSE, 9, 3);
  41. CBitmap* pBitmap = new CBitmap;
  42. pBitmap->LoadBitmap(IDB_WINDOW);
  43. m_nIdxWindow = m_imgList.Add(pBitmap, RGB(0, 0, 0));
  44. pBitmap->LoadBitmap(IDB_RECT);
  45. m_nIdxRect = m_imgList.Add(pBitmap, RGB(0, 0, 0));
  46. pBitmap->LoadBitmap(IDB_ARCH);
  47. m_nIdxArch = m_imgList.Add(pBitmap, RGB(0, 0, 0));
  48. pBitmap->LoadBitmap(IDB_APEX);
  49. m_nIdxApex = m_imgList.Add(pBitmap, RGB(0, 0, 0));
  50. pBitmap->LoadBitmap(IDB_WIDTH);
  51. m_nIdxWidth = m_imgList.Add(pBitmap, RGB(0, 0, 0));
  52. pBitmap->LoadBitmap(IDB_HEIGHT);
  53. m_nIdxHeight = m_imgList.Add(pBitmap, RGB(0, 0, 0));
  54. pBitmap->LoadBitmap(IDB_ROWS);
  55. m_nIdxRows = m_imgList.Add(pBitmap, RGB(0, 0, 0));
  56. pBitmap->LoadBitmap(IDB_COLS);
  57. m_nIdxCols = m_imgList.Add(pBitmap, RGB(0, 0, 0));
  58. pBitmap->LoadBitmap(IDB_STARTPT);
  59. m_nIdxStartPt = m_imgList.Add(pBitmap, RGB(0, 0, 0));
  60. m_pTreeCtrl->SetImageList(&m_imgList, TVSIL_NORMAL);
  61. delete pBitmap;
  62. AddTreeViewItems();
  63. HTREEITEM hRoot = m_pTreeCtrl->GetRootItem();
  64. m_pTreeCtrl->Expand(hRoot, TVE_EXPAND);
  65. return TRUE;  // return TRUE unless you set the focus to a control
  66.               // EXCEPTION: OCX Property Pages should return FALSE
  67. }
  68. void CWindoInfoDlg::AddTreeViewItems()
  69. {
  70. CString strItem("Window");
  71. htCur = AddOneItem((HTREEITEM)NULL, strItem, (HTREEITEM)TVI_ROOT, m_nIdxWindow, TRUE);
  72. switch(windInfo.m_nWindType)
  73. {
  74. case 0 :
  75. strItem = "Rect";
  76. htPrev = AddOneItem(htCur, strItem, NULL, m_nIdxRect, FALSE);
  77. break;
  78. case 1 :
  79. strItem = "Arch";
  80. htPrev = AddOneItem(htCur, strItem, NULL, m_nIdxArch, FALSE);
  81. break;
  82. case 2 :
  83. strItem = "Apex";
  84. htPrev = AddOneItem(htCur, strItem, NULL, m_nIdxApex, FALSE);
  85. break;
  86. }
  87. strItem.Format("W = %.2lf", windInfo.m_dWindWt);
  88. htPrev = AddOneItem(htCur, strItem, NULL, m_nIdxWidth, FALSE);
  89. strItem.Format("H = %.2lf", windInfo.m_dWindHt);
  90. htPrev = AddOneItem(htCur, strItem, NULL, m_nIdxHeight, FALSE);
  91. strItem.Format("Rows = %d", windInfo.m_nRows);
  92. htPrev = AddOneItem(htCur, strItem, NULL, m_nIdxRows, FALSE);
  93. strItem.Format("Cols = %d", windInfo.m_nCols);
  94. htPrev = AddOneItem(htCur, strItem, NULL, m_nIdxCols, FALSE);
  95. strItem.Format("SP = (%.2lf, %.2lf)", windInfo.m_startPt.x, windInfo.m_startPt.y);
  96. htPrev = AddOneItem(htCur, strItem, NULL, m_nIdxStartPt, FALSE);
  97. }
  98. HTREEITEM CWindoInfoDlg::AddOneItem( HTREEITEM hParent, 
  99. CString szText, HTREEITEM hInsAfter, int iImage, BOOL bChildren)
  100. {
  101. HTREEITEM hItem; // return value
  102. TV_ITEM tvI; // item structure
  103. TV_INSERTSTRUCT tvIns; // item insert structure
  104. if(bChildren) // *** set tvI.mask member ***
  105. tvI.mask = TVIF_TEXT | TVIF_IMAGE | TVIF_CHILDREN | TVIF_SELECTEDIMAGE; // item has children
  106. else // item has no children
  107. tvI.mask = TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE;
  108. tvI.pszText = szText.GetBuffer(szText.GetLength()); // set text, text lenght, image
  109. tvI.cchTextMax = szText.GetLength();
  110. tvI.iImage = iImage;
  111. tvI.iSelectedImage = iImage;
  112. tvI.cChildren = 1; // allow one more level down
  113. // do the insert
  114. tvIns.item = tvI;
  115. tvIns.hInsertAfter = hInsAfter;
  116. tvIns.hParent = hParent;
  117. hItem = m_pTreeCtrl->InsertItem(&tvIns);
  118. return (hItem); // return (add error trap here)
  119. }