程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> 工具欄在被隱藏的地方顯示的實現代碼

工具欄在被隱藏的地方顯示的實現代碼

編輯:關於C++

1、在Toolbar資源中新建一個工具欄IDR_TOOLBAR。增加按鈕。然後再MainFrame中添加一個成員變量CToolBar m_newToolBar; 在Mainframe的OnCreate函數中加入:

//創建工具欄,並加載工具欄資源
   if (!m_newToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_RIGHT | CBRS_GRIPPER |
   CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) || !m_newToolBar.LoadToolBar(IDR_TOOLBAR))
   {
   TRACE0("Failed to create toolbar\n");
   return -1;   // fail to create
   }
   m_newToolBar.EnableDocking(CBRS_ALIGN_ANY); //允許工具欄在工具欄區域中移動
   EnableDocking(CBRS_ALIGN_ANY); //此框架任何地方允許可拖動,如果已經為別的ToolBar寫過可以不用再寫
   DockControlBar(&m_newToolBar); //允許此工具欄在整個window窗口中拖動

2、在菜單上新建一個菜單(ID_TOOLBAR,工具欄測試),然後通過ClassWizard對此菜單添加命令響應函數:

方法一

void CMainFrame::OnToolbar()
  {
   if (m_newToolBar.IsWindowVisible()) //如果工具欄是顯示著,那麼就隱藏,否則就顯示。
   {
   m_newToolBar.ShowWindow(SW_HIDE);
   }
   else
   {
   m_newToolBar.ShowWindow(SW_SHOW);
   }
   RecalcLayout(); //注意如果不寫這行,會出現工具欄隱藏,但工具條仍然存在的現象,需要重新計算
   DockControlBar(&m_newToolBar); //這行是為了在工具欄被拖役出邊框時,工具欄窗口不能被隱藏。需要重靠。
  }

方法二,將以上函數中的內容改為:

ShowControlBar(&m_newToolBar,!m_newToolBar.IsWindowVisible(),FALSE);//一句話便可實現以上功能,並可保存被隱藏前的窗口位置

3、讓菜單項的checked標記和ToolBar相關聯。我們在菜單項上新建一個UPDATE_COMMAND_UI的消息相應函數:

void CMainFrame::OnUpdateToolbar(CCmdUI* pCmdUI)
  {
   pCmdUI->SetCheck(m_newToolBar.IsWindowVisible());
  }

4、在Accelerator資源中編輯快捷鍵:選擇要響應快捷鍵的菜單ID,然後設置快捷鍵。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved