程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> vc教程 >> 如何實現工具欄的下拉箭頭按鈕

如何實現工具欄的下拉箭頭按鈕

編輯:vc教程

  論壇中有人曾經問過這樣的問題:如何在C++/MFC程序中實現類似IE工具欄中帶下拉箭頭的按鈕,如圖一所示:

  圖一 IE工具欄中帶下拉箭頭的按鈕

  本文將告訴你如何實現,方法其實很簡單:

  1、新建一個MFC/SDI工程,一路都取默認的設置。

  2、在mainframe.cpp文件中找到 CMainFrame::OnCreate()框架窗口創建函數。在末尾添加如下代碼行:

DWORD dwExStyle = TBSTYLE_EX_DRAWDDARROWS;
   m_wndToolBar.GetToolBarCtrl().SendMessage(TB_SETEXTENDEDSTYLE, 0, (LPARAM)dwExStyle);   
這兩行代碼的作用是讓工具欄具有處理下拉箭頭的能力,接著要用SetButtonStyle()方法在選定的地方添加下拉箭頭按鈕,在例子程序裡,下拉箭頭按鈕是加在了文件打開菜單上:
DWORD dwStyle = m_wndToolBar.GetButtonStyle(m_wndToolBar.CommandToIndex(ID_FILE_OPEN));
   dwStyle |= TBSTYLE_DROPDOWN;
   m_wndToolBar.SetButtonStyle(m_wndToolBar.CommandToIndex(ID_FILE_OPEN), dwStyle);   
加了上述代碼行之後,編譯一次程序,然後運行程序,你就可以看到下拉箭頭了。但此時還不能操作。

  3、接下來要做的事情是添加下拉箭頭的消息處理代碼以及程序要用的菜單資源。現在假設你已經創建了菜單資源,且假設這個菜單的資源ID是IDR_MENU1。如圖二所示。

  圖二 新創建的菜單資源IDR_MENU1

  在CMainFrame類的消息映射中加入下拉箭頭的TBN_DROPDOWN消息映射:

BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)
   //{{AFX_MSG_MAP(CMainFrame)
   ...
   ON_NOTIFY(TBN_DROPDOWN, AFX_IDW_TOOLBAR, OnToolbarDropDown)
   /
            
            
            
          
            
            
            
          
            
            
			

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