MainFrm.cpp
上传用户:szcysw
上传日期:2013-03-11
资源大小:6752k
文件大小:7k
源码类别:

界面编程

开发平台:

Visual C++

  1. // MainFrm.cpp : implementation of the CMainFrame class
  2. //
  3. #include "stdafx.h"
  4. #include "MyExplorer.h"
  5. #include "MainFrm.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. /////////////////////////////////////////////////////////////////////////////
  12. // CMainFrame
  13. IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)
  14. BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
  15. //{{AFX_MSG_MAP(CMainFrame)
  16. // NOTE - the ClassWizard will add and remove mapping macros here.
  17. //    DO NOT EDIT what you see in these blocks of generated code !
  18. ON_WM_CREATE()
  19. //}}AFX_MSG_MAP
  20. ON_COMMAND(ID_BACK, OnBack)
  21. ON_COMMAND(ID_FORWARD, OnForward)
  22. ON_COMMAND(ID_UP, OnUp)
  23. ON_COMMAND(ID_CUT, OnCut)
  24. ON_COMMAND(ID_COPY, OnCopy)
  25. ON_COMMAND(ID_PASTE, OnPaste)
  26. ON_COMMAND(ID_UNDO, OnUndo)
  27. ON_COMMAND(ID_DELETE, OnDelete)
  28. // ON_COMMAND(ID_PROPERTIES, OnProperties)
  29. END_MESSAGE_MAP()
  30. static UINT indicators[] =
  31. {
  32. ID_SEPARATOR,           // status line indicator
  33. ID_INDICATOR_CAPS,
  34. ID_INDICATOR_NUM,
  35. ID_INDICATOR_SCRL,
  36. };
  37. /////////////////////////////////////////////////////////////////////////////
  38. // CMainFrame construction/destruction
  39. CMainFrame::CMainFrame()
  40. {
  41. // TODO: add member initialization code here
  42. }
  43. CMainFrame::~CMainFrame()
  44. {
  45. }
  46. int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
  47. {
  48. if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
  49. return -1;
  50. //装入自定义工具条
  51. if (!m_wndToolBar.CreateEx(this) ||
  52. !m_wndToolBar.LoadToolBar(IDR_TOOLBAR1))
  53. {
  54. AfxMessageBox("Failed to create toolbarn");
  55. return -1;      // fail to create
  56. }
  57. //实现彩色位图
  58. CString str;
  59. CImageList imageList;
  60. CBitmap bitmap;
  61. bitmap.LoadBitmap(IDB_COLDTOOLBAR);
  62. imageList.Create(22, 20, ILC_COLORDDB|ILC_MASK, 13, 1);
  63. imageList.Add(&bitmap, RGB(255,0,255));
  64. m_wndToolBar.GetToolBarCtrl().SetImageList(&imageList);
  65. imageList.Detach();
  66. bitmap.Detach();
  67. //分别为每一个按钮添加文本标题
  68. str.LoadString(IDS_BACK);
  69. m_wndToolBar.SetButtonText(m_wndToolBar.CommandToIndex(ID_BACK), str);
  70. str.LoadString(IDS_FORWARD);
  71. m_wndToolBar.SetButtonText(m_wndToolBar.CommandToIndex(ID_FORWARD), str);
  72. str.LoadString(IDS_UP);
  73. m_wndToolBar.SetButtonText(m_wndToolBar.CommandToIndex(ID_UP), str);
  74. str.LoadString(IDS_CUT);
  75. m_wndToolBar.SetButtonText(m_wndToolBar.CommandToIndex(ID_CUT), str);
  76. str.LoadString(IDS_COPY);
  77. m_wndToolBar.SetButtonText(m_wndToolBar.CommandToIndex(ID_COPY), str);
  78. str.LoadString(IDS_PASTE);
  79. m_wndToolBar.SetButtonText(m_wndToolBar.CommandToIndex(ID_PASTE), str);
  80. str.LoadString(IDS_UNDO);
  81. m_wndToolBar.SetButtonText(m_wndToolBar.CommandToIndex(ID_UNDO), str);
  82. str.LoadString(IDS_DELETE);
  83. m_wndToolBar.SetButtonText(m_wndToolBar.CommandToIndex(ID_DELETE), str);
  84. str.LoadString(IDS_PROPERTIES);
  85. m_wndToolBar.SetButtonText(m_wndToolBar.CommandToIndex(ID_PROPERTIES), str);
  86. str.LoadString(IDS_TOGGLE);
  87. m_wndToolBar.SetButtonText(m_wndToolBar.CommandToIndex(ID_VIEW_TOGGLE), str);
  88. //在按钮旁边添加下拉按钮
  89. m_wndToolBar.AddDropDownButton(ID_PROPERTIES,    IDR_POPDOWN,   TRUE);
  90. m_wndToolBar.AddDropDownButton(ID_VIEW_TOGGLE, IDR_POPDOWN, TRUE);
  91. m_wndToolBar.GetToolBarCtrl().SetButtonWidth(50, 150);
  92. CRect rectToolBar;
  93. m_wndToolBar.GetItemRect(0, &rectToolBar);
  94. //设置工具条按钮大小
  95. m_wndToolBar.SetSizes(rectToolBar.Size(), CSize(22,20));
  96. m_wndToolBar.SetBarStyle(m_wndToolBar.GetBarStyle() |
  97. CBRS_TOOLTIPS | CBRS_FLYBY);
  98. if (!m_wndStatusBar.Create(this) ||
  99. !m_wndStatusBar.SetIndicators(indicators,
  100.   sizeof(indicators)/sizeof(UINT)))
  101. {
  102. AfxMessageBox("Failed to create status barn");
  103. return -1;      // fail to create
  104. }
  105. //建立地址栏
  106. if (!m_wndAddress.Create(CBS_DROPDOWN | WS_CHILD,
  107. CRect(0, 0, 200, 120), this, AFX_IDW_TOOLBAR-1))
  108. {
  109. AfxMessageBox("Failed to create comboboxn");
  110. return -1;
  111. }
  112. //建立AVI播放控件
  113. if (!m_wndAnimate.Create(WS_CHILD | WS_VISIBLE | ACS_AUTOPLAY,
  114. CRect(0,0,100,100), this, AFX_IDW_TOOLBAR+2) ||
  115. !m_wndAnimate.Open(IDR_AVI1))
  116. {
  117. TRACE0("Failed to create animation control.n");
  118. return -1;   
  119. }
  120. //将地址栏、AVI播放控件做为工具条添加到m_wndReBar中
  121. if (!m_wndReBar.Create(this) ||!m_wndReBar.AddBar
  122. (&m_wndAddress, "地址:", NULL,  RBBS_BREAK)||
  123. !m_wndReBar.AddBar(&m_wndAnimate, NULL, NULL, RBBS_FIXEDBMP | RBBS_FIXEDSIZE))
  124. {
  125. return 0;
  126. }
  127. //设置m_wndReBar工具条外观
  128. m_wndReBar.SetBarStyle(m_wndReBar.GetBarStyle() |
  129. CBRS_BORDER_ANY |CBRS_FLYBY);
  130. m_wndReBar.SetBarStyle(m_wndReBar.GetBarStyle() |
  131. CBRS_BORDER_ANY );
  132. //启用工具条停靠
  133. m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
  134. EnableDocking(CBRS_ALIGN_ANY);
  135. DockControlBar(&m_wndToolBar);
  136. //将两个视图关联
  137. CCJShellList& listCtrl = GetRightPane()->m_ShellList;
  138. CCJShellTree& treeCtrl = GetLeftPane()->m_ShellTree;
  139. listCtrl.AssociateTree(&treeCtrl);
  140. treeCtrl.AssociateList(&listCtrl);
  141. treeCtrl.AssociateCombo(&m_wndAddress);
  142. return 0;
  143. //CCJShellTree& treeCtrl = pFrame->GetLeftPane()->GetTreeCtrl();
  144. treeCtrl.TunnelTree(_T("C:\"));
  145. }
  146. #include "left.h"
  147. #include "right.h"
  148. //将窗口切分成2列
  149. BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/,
  150. CCreateContext* pContext)
  151. {
  152. if (!m_wndSplitter.CreateStatic(this, 1, 2))
  153. return FALSE;
  154. if (!m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CLeft), CSize(200, 100), pContext) ||
  155. !m_wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CRight), CSize(100, 100), pContext))
  156. {
  157. m_wndSplitter.DestroyWindow();
  158. return FALSE;
  159. }
  160. return TRUE;
  161. }
  162. BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
  163. {
  164. if( !CFrameWnd::PreCreateWindow(cs) )
  165. return FALSE;
  166. // TODO: Modify the Window class or styles here by modifying
  167. //  the CREATESTRUCT cs
  168. return TRUE;
  169. }
  170. /////////////////////////////////////////////////////////////////////////////
  171. // CMainFrame diagnostics
  172. #ifdef _DEBUG
  173. void CMainFrame::AssertValid() const
  174. {
  175. CFrameWnd::AssertValid();
  176. }
  177. void CMainFrame::Dump(CDumpContext& dc) const
  178. {
  179. CFrameWnd::Dump(dc);
  180. }
  181. #endif //_DEBUG
  182. /////////////////////////////////////////////////////////////////////////////
  183. // CMainFrame message handlers
  184. CLeft* CMainFrame::GetLeftPane()
  185. {
  186. CWnd* pWnd = m_wndSplitter.GetPane(0, 0);
  187. CLeft* pView = DYNAMIC_DOWNCAST(CLeft, pWnd);
  188. return pView;
  189. }
  190. CRight* CMainFrame::GetRightPane()
  191. {
  192. CWnd* pWnd = m_wndSplitter.GetPane(0, 1);
  193. CRight* pView = DYNAMIC_DOWNCAST(CRight, pWnd);
  194. return pView;
  195. }
  196. void CMainFrame::OnBack() 
  197. {
  198. // TODO: Add your command handler code here
  199. }
  200. void CMainFrame::OnForward() 
  201. {
  202. // TODO: Add your command handler code here
  203. }
  204. void CMainFrame::OnUp() 
  205. {
  206. // TODO: Add your command handler code here
  207. }
  208. void CMainFrame::OnCut() 
  209. {
  210. // TODO: Add your command handler code here
  211. }
  212. void CMainFrame::OnCopy() 
  213. {
  214. // TODO: Add your command handler code here
  215. }
  216. void CMainFrame::OnPaste() 
  217. {
  218. // TODO: Add your command handler code here
  219. }
  220. void CMainFrame::OnUndo() 
  221. {
  222. // TODO: Add your command handler code here
  223. }
  224. void CMainFrame::OnDelete() 
  225. {
  226. // TODO: Add your command handler code here
  227. }
  228. /*void CMainFrame::OnProperties() 
  229. {
  230. // TODO: Add your command handler code here
  231. }
  232. void CMainFrame::OnViewToggle() 
  233. {
  234. // TODO: Add your command handler code here
  235. }
  236. */