GuiBarOffice.cpp
上传用户:wlkj888
上传日期:2022-08-01
资源大小:806k
文件大小:4k
源码类别:

对话框与窗口

开发平台:

Visual C++

  1. #include "stdafx.h"
  2. #include "guibaroffice.h"
  3. #include "resource.h"
  4. CGuiBarOffice::CGuiBarOffice(void)
  5. {
  6. }
  7. CGuiBarOffice::~CGuiBarOffice(void)
  8. {
  9. }
  10. #define ID_DOC 992
  11. #define ID_DOCBLAN 994
  12. #define ID_DOCWEB  995
  13. BEGIN_MESSAGE_MAP(CGuiBarOffice, CGuiOfficeBar)
  14. //{{AFX_MSG_MAP(CMyBar)
  15. ON_WM_CREATE()
  16. ON_COMMAND(ID_DOC,OnOpenDoc)
  17. ON_COMMAND(ID_DOCBLAN,OnNuevoDoc)
  18. ON_COMMAND(ID_DOCWEB,OnNuevoWeb)
  19. //}}AFX_MSG_MAP
  20. ON_WM_WINDOWPOSCHANGED()
  21. ON_WM_SIZE()
  22. ON_WM_TIMER()
  23. END_MESSAGE_MAP()
  24. void CGuiBarOffice::OnMenu()
  25. {
  26. AfxMessageBox("Menu");
  27. }
  28. void CGuiBarOffice::OnBack()
  29. {
  30. m_wndPanel.ShowWindow(SW_HIDE);
  31. m_ctClassView.ShowWindow(SW_SHOW);
  32. ShowTitle("Lista de Colecciones");
  33. }
  34. void CGuiBarOffice::OnForWard()
  35. {
  36. m_ctClassView.ShowWindow(SW_HIDE);
  37. m_wndPanel.ShowWindow(SW_SHOW);
  38. ShowTitle("Nuevo Documento");
  39. }
  40. void CGuiBarOffice::OnOpenDoc()
  41. {
  42. }
  43. void CGuiBarOffice::OnNuevoDoc()
  44. {
  45. //GetParentFrame()->SendMessage(ID_FILE_NEW);
  46. }
  47. void CGuiBarOffice::OnNuevoWeb(){}
  48. int CGuiBarOffice::OnCreate(LPCREATESTRUCT lpCreateStruct) 
  49. {
  50. if (CGuiOfficeBar::OnCreate(lpCreateStruct) == -1)
  51. return -1;
  52. SetSupporMultiView();
  53. const DWORD dwStyle =WS_CHILD | WS_VISIBLE;
  54. //m_ArrButtons[0].SetEnabled(FALSE);
  55. //m_ArrButtons[1].SetEnabled(FALSE);
  56. //Usted puede tener multiples ventanas hijas
  57. //y controlarlas con SW_HIDE y SW_SHOW
  58. if (!m_wndPanel.Create(dwStyle,CRect(0,0,0,0),this,9992))
  59. return -1;
  60. if (!m_ctClassView.Create(WS_CHILD|WS_VISIBLE,CRect(0,0,0,0),this,124))
  61. return -1;
  62. m_TreeGaleria=(CTreeCtrl* )m_ctClassView.AddComponen(RUNTIME_CLASS(CTreeCtrl),3, TVS_HASLINES | 
  63. TVS_LINESATROOT | TVS_HASBUTTONS );
  64. m_ctClassView.ShowWindow(SW_HIDE);
  65. m_wndPanel.SetImageList(IDB_FILEVIEW,16, 0, RGB (255, 0, 0));
  66. m_wndPanel.Addlabel(991,&m_ArrLabels[0]);
  67. m_ArrLabels[0].SetCaption("Abrir un nuevo Documento");
  68. m_wndPanel.AddImageLink(992,0,&m_ArrLinks[0]);
  69. m_ArrLinks[0].SetCaption("Documentos...");
  70. m_wndPanel.Addlabel(993,&m_ArrLabels[1]);
  71. m_ArrLabels[1].SetCaption("Nuevo");
  72. m_wndPanel.AddImageLink(ID_FILE_NEW,1,&m_ArrLinks[1]);
  73. m_ArrLinks[1].SetCaption("Documento en blanco");
  74. m_wndPanel.AddImageLink(995,2,&m_ArrLinks[2]);
  75. m_ArrLinks[2].SetCaption("Pagina Web en blanco");
  76. m_wndPanel.AddImageLink(996,0,&m_ArrLinks[3]);
  77. m_ArrLinks[3].SetCaption("Mensaje de correo electronico");
  78. m_wndPanel.Addlabel(997,&m_ArrLabels[2]);
  79. m_ArrLabels[2].SetCaption("Nuevo a partir de un documento existente");
  80. m_wndPanel.AddImageLink(998,1,&m_ArrLinks[4]);
  81. m_ArrLinks[4].SetCaption("Elegir documento");
  82. m_wndPanel.AddImageLink(999,-1,&m_ArrLinks[5]);
  83. m_ArrLinks[5].SetCaption("Mi nuevo documento 1");
  84. m_ArrLinks[5].AjustRightText(16);
  85. m_wndPanel.AddImageLink(998,-1,&m_ArrLinks[6]);
  86. m_ArrLinks[6].SetCaption("Mi nuevo documento 2");
  87. m_ArrLinks[6].AjustRightText(16);
  88. m_wndPanel.AddImageLink(998,-1,&m_ArrLinks[7]);
  89. m_ArrLinks[7].SetCaption("Mi nuevo documento 3");
  90. m_ArrLinks[7].AjustRightText(16);
  91. ShowTitle("Nuevo Documento");
  92. return 0;
  93. }
  94. void CGuiBarOffice::OnWindowPosChanged(WINDOWPOS* lpwndpos)
  95. {
  96. UpdateChilds();
  97. CGuiOfficeBar::OnWindowPosChanged(lpwndpos);
  98. // TODO: Add your message handler code here
  99. }
  100. void CGuiBarOffice::UpdateChilds()
  101. {
  102. CRect rc;
  103. GetClientRect(rc);
  104. CWnd* pWnd = GetWindow(GW_CHILD);
  105. while (pWnd != NULL)
  106.     {
  107.         if (pWnd->IsWindowVisible())
  108. {
  109. pWnd->MoveWindow(rc);
  110. break;
  111. }
  112.             pWnd=pWnd->GetWindow(GW_HWNDNEXT);
  113. }
  114. }
  115. void CGuiBarOffice::OnSize(UINT nType, int cx, int cy)
  116. {
  117. UpdateChilds();
  118. CGuiOfficeBar::OnSize(nType, cx, cy);
  119. //nunca utilice el timer 1 porque es utilizado por la ventana padre
  120. //para manejar los botones de control
  121. SetTimer(100,100,NULL);
  122. // TODO: Add your message handler code here
  123. }
  124. void CGuiBarOffice::OnTimer(UINT nIDEvent)
  125. {
  126. // TODO: Add your message handler code here and/or call default
  127. KillTimer(100);
  128. UpdateChilds();
  129. CGuiOfficeBar::OnTimer(nIDEvent);
  130. }