MainFrm.cpp
上传用户:shuini
上传日期:2007-02-05
资源大小:103k
文件大小:4k
源码类别:

工具条

开发平台:

Visual C++

  1. // MainFrm.cpp : implementation of the CMainFrame class
  2. //
  3. #include "stdafx.h"
  4. #include "Demo.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. ON_WM_CREATE()
  17. ON_COMMAND(ID_CUSTOMIZE, OnCustomize)
  18. //}}AFX_MSG_MAP
  19. ON_CBN_SELENDOK  (ID_FIND,OnSelChange)
  20. END_MESSAGE_MAP()
  21. static UINT indicators[] =
  22. {
  23. ID_SEPARATOR,           // status line indicator
  24. ID_INDICATOR_CAPS,
  25. ID_INDICATOR_NUM,
  26. ID_INDICATOR_SCRL,
  27. };
  28. /////////////////////////////////////////////////////////////////////////////
  29. // CMainFrame construction/destruction
  30. CMainFrame::CMainFrame()
  31. {
  32. // TODO: add member initialization code here
  33. m_pComboBox=NULL;
  34. }
  35. CMainFrame::~CMainFrame()
  36. {
  37. //m_pComboBox destroyed by toolbarex
  38. }
  39. int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
  40. {
  41. if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
  42. return -1;
  43. if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
  44. | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
  45. !m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
  46. {
  47. TRACE0("Failed to create toolbarn");
  48. return -1;      // fail to create   
  49. }
  50. m_wndToolBar.LoadBitmap(IDB_BITMAP1);
  51. m_fontTohama.CreatePointFont(90,_T("Tohama"));
  52. if (m_fontTohama.m_hObject)
  53. {
  54. m_wndToolBar.SetFont(&m_fontTohama);
  55. }
  56. CRect rt(0,0,100,120);
  57. //Insert Control
  58.     m_pComboBox =(CComboBox *) m_wndToolBar.InsertControl(RUNTIME_CLASS(CComboBox),_T(""),rt,ID_FIND,WS_VSCROLL|CBS_DROPDOWNLIST);
  59. m_pComboBox->AddString(_T("One"));
  60. m_pComboBox->AddString(_T("Two"));
  61. m_pComboBox->AddString(_T("Three"));
  62. m_pComboBox->AddString(_T("Four"));
  63. m_pComboBox->SetCurSel(3);
  64. m_wndToolBar.SetWindowText(_T("Standard"));
  65. //Add DropDown
  66. m_wndToolBar.AddDropDownButton(ID_OP,IDR_OP,TRUE);
  67. //Enable Customization
  68. m_wndToolBar.SetToolBarInfoForCustomization();
  69. //Delete the button which do not need to shown intially.
  70. m_wndToolBar.GetToolBarCtrl().DeleteButton(m_wndToolBar.CommandToIndex(ID_CUSTOMIZE));
  71. // Mark the default state for reset
  72. m_wndToolBar.MarkDefaultState();
  73. //Restore State
  74. m_wndToolBar.RestoreState();
  75. if (!m_wndStatusBar.Create(this) ||
  76. !m_wndStatusBar.SetIndicators(indicators,
  77.   sizeof(indicators)/sizeof(UINT)))
  78. {
  79. TRACE0("Failed to create status barn");
  80. return -1;      // fail to create
  81. }
  82. // TODO: Delete these three lines if you don't want the toolbar to
  83. //  be dockable
  84. m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
  85. FrameEnableDocking(this,CBRS_ALIGN_ANY);
  86. DockControlBar(&m_wndToolBar);
  87. return 0;
  88. }
  89. BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
  90. {
  91. if( !CFrameWnd::PreCreateWindow(cs) )
  92. return FALSE;
  93. // TODO: Modify the Window class or styles here by modifying
  94. //  the CREATESTRUCT cs
  95. return TRUE;
  96. }
  97. /////////////////////////////////////////////////////////////////////////////
  98. // CMainFrame diagnostics
  99. #ifdef _DEBUG
  100. void CMainFrame::AssertValid() const
  101. {
  102. CFrameWnd::AssertValid();
  103. }
  104. void CMainFrame::Dump(CDumpContext& dc) const
  105. {
  106. CFrameWnd::Dump(dc);
  107. }
  108. #endif //_DEBUG
  109. /////////////////////////////////////////////////////////////////////////////
  110. // CMainFrame message handlers
  111. void CMainFrame::OnSelChange()
  112. {
  113. ASSERT_VALID(m_pComboBox);
  114.     int nPos=m_pComboBox->GetCurSel() ;
  115. if (nPos!=-1)
  116. {
  117. CString str,str1;
  118. m_pComboBox->GetLBText(nPos,str1);
  119. str.Format(_T("You Selected :%s"),str1);
  120. AfxMessageBox(str);
  121. }
  122. }
  123.  
  124. void CMainFrame::OnCustomize() 
  125. {
  126. m_wndToolBar.Customize();
  127. }