workbar.cpp
上传用户:netltd
上传日期:2013-02-12
资源大小:7234k
文件大小:3k
源码类别:

绘图程序

开发平台:

Visual C++

  1. // mybar.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "resource.h" 
  5. #include "workbar.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. /////////////////////////////////////////////////////////////////////////////
  12. // CMyWorkBar
  13. CMyWorkBar::CMyWorkBar()
  14. {
  15. }
  16. CMyWorkBar::~CMyWorkBar()
  17. {
  18. }
  19. BEGIN_MESSAGE_MAP(CMyWorkBar, CSizingControlBar)
  20.     //{{AFX_MSG_MAP(CMyWorkBar)
  21.     ON_WM_CREATE()
  22.     ON_WM_SIZE()
  23.     //}}AFX_MSG_MAP
  24. END_MESSAGE_MAP()
  25. /////////////////////////////////////////////////////////////////////////////
  26. // CMyWorkBar message handlers
  27. int CMyWorkBar::OnCreate(LPCREATESTRUCT lpCreateStruct) 
  28. {
  29.     if (CSizingControlBar::OnCreate(lpCreateStruct) == -1)
  30.         return -1;
  31.     if (!m_wndTab.Create(WS_CHILD | WS_VISIBLE, CRect(0,0,0,0), this, IDC_TAB))
  32.         return -1;
  33. if (!m_wndTree.Create(WS_CHILD | WS_VISIBLE | TVS_LINESATROOT | TVS_HASLINES 
  34. | TVS_HASBUTTONS | WS_BORDER | WS_TABSTOP | WS_VSCROLL, CRect(0,0,0,0),
  35. this, IDC_TREE))
  36.         return -1;
  37. //设置3D外观
  38.     m_wndTree.ModifyStyleEx(0, WS_EX_CLIENTEDGE);
  39. if (!m_wndList.Create(WS_CHILD | WS_VISIBLE | WS_BORDER | WS_EX_CLIENTEDGE, 
  40. CRect(0,0,0,0), this, IDC_LIST))
  41.         return -1;
  42. //设置3D外观的另一种方法
  43. SetWindowLong(m_wndList.GetSafeHwnd(), GWL_EXSTYLE, WS_EX_CLIENTEDGE);
  44. //设置字体
  45. if (!m_font.CreateStockObject(DEFAULT_GUI_FONT))
  46.         return -1;
  47.     m_wndTab.SetFont(&m_font);
  48.     //初始化工作区
  49. m_wndTab.InsertItem(0, "项目");
  50. m_wndTab.InsertItem(1, "元件");
  51. //初始化树形框
  52. CImageList  m_TreeImageList;
  53. m_TreeImageList.Create(16, 16, ILC_MASK, 2, 2);
  54. m_TreeImageList.Add(AfxGetApp()->LoadIcon(IDI_PROJECT));
  55. m_TreeImageList.Add(AfxGetApp()->LoadIcon(IDI_FILE));
  56. m_wndTree.SetImageList(&m_TreeImageList, TVSIL_NORMAL);
  57. m_TreeImageList.Detach();
  58. m_wndTree.ShowWindow(FALSE);
  59. //初始化列表框
  60. CImageList  m_ListImageList;
  61. m_ListImageList.Create(32, 32, ILC_MASK, 2, 2);
  62. m_ListImageList.Add(AfxGetApp()->LoadIcon(IDI_FILE));
  63.     m_ListImageList.Add(AfxGetApp()->LoadIcon(IDI_FILE));
  64. m_wndList.SetImageList(&m_ListImageList, TVSIL_NORMAL);
  65. m_ListImageList.Detach();
  66. m_wndList.ShowWindow(FALSE);
  67.     return 0;
  68. }
  69. void CMyWorkBar::OnUpdateCmdUI(CFrameWnd* pTarget, BOOL bDisableIfNoHndler)
  70. {
  71. UpdateDialogControls(pTarget, bDisableIfNoHndler);
  72. }
  73. void CMyWorkBar::OnSize(UINT nType, int cx, int cy) 
  74. {
  75.     CSizingControlBar::OnSize(nType, cx, cy);
  76.     
  77.     CRect rc;
  78.     GetClientRect(rc);
  79.     rc.DeflateRect(4, 4);
  80.     m_wndTab.MoveWindow(rc);
  81. rc.left += 5;
  82. rc.top += 30;
  83. rc.right -= 5;
  84.     rc.bottom -= 10;
  85.     m_wndTree.MoveWindow(rc);
  86. m_wndList.MoveWindow(rc);
  87. }