• <menu id="w2i4a"></menu>
  • logo BCGControlBar 中文文檔

    自定義工具


    立即下載BCGControlBar Professional Edition for MFC

    BCGControlBar庫框架支持用戶定義的工具。用戶定義工具是一個(gè)特殊的菜單項(xiàng),它執(zhí)行由用戶指定的外部程序,用戶定義工具管理是定制過程的一部分,由框架實(shí)現(xiàn)。

    如果啟用,自定義對話框會自動插入“Tools”屬性頁。“工具”界面如下圖所示:

    MFC 工具界面

    要在應(yīng)用程序中啟用自定義工具,需要執(zhí)行以下步驟:

    1. 在資源編輯器中,使用ID_TOOLS_ENTRY命令I(lǐng)D創(chuàng)建一個(gè)虛擬菜單項(xiàng)。
    2. 您還可以幫助用戶選擇目錄和工具(外部程序)的參數(shù),在資源編輯器中創(chuàng)建兩個(gè)彈出菜單ID_MENU_ARGS和ID_MENU_DIRS。
    3. 您必須告知框架在應(yīng)用程序中允許使用多少用戶定義工具,工具的命令I(lǐng)Ds必須為連續(xù)的數(shù)字。例如,在字符串表中定義ID_USER_TOOL1到ID_USER_TOOL10,來允許使用10個(gè)工具。
    4. 調(diào)用CBCGPWorkspace::EnableUserTools來啟用用戶定義的工具。指定ID_TOOLS_ENTRY作為虛擬命令I(lǐng)D,ID_USER_TOOL1和ID_USER_TOOL10作為工具命令的間隔,RUNTIME_CLASS (CBCGPUserTool)為處理特定用戶工具的類,ID_MENU_ARGS和ID_MENU_DIRS彈出式菜單是可選的。

    請注意框架將搜索ID_TOOLS_ENTRY并將其替換為實(shí)際的用戶定義工具條目(如果有的話),如果您想實(shí)現(xiàn)一個(gè)處理用戶工具的自定義對象,從CBCGPUserTool類派生一個(gè)類,并在調(diào)用CBCGPWorkspace::EnableUserTools時(shí)提供它的運(yùn)行時(shí)類信息。

    如果您需要在應(yīng)用啟動時(shí)預(yù)定義一些工具:

    1. 重載LoadFrame函數(shù)(它是cbcgpframewind、cbcgpmdiframewind和cbcgpoleipframewind類的成員)。
    2. 通過調(diào)用CBCGPWorkspace::GetUserToolsManager獲取CBCGPUserToolsManager對象的指針。
    3. 對于您想要創(chuàng)建的每個(gè)工具,調(diào)用CBCGPUserToolsManager::CreateNewTool,它返回一個(gè)指向CBCGPUserTool對象的指針,并將新創(chuàng)建的用戶工具添加到工具的內(nèi)部集合中。
    4. 對于每個(gè)工具,設(shè)置它的文本標(biāo)簽和命令(CBCGPUserTool::m_strLabel, CBCGPUserTool::SetCommand),CBCGPUserTool的默認(rèn)實(shí)現(xiàn)自動從SetCommand程序中指定的可用圖標(biāo)中檢索。

    請注意如果您從CBCGPUserTool中派生出自己的類,并且在CBCGPWorkspace::EnableUserTools中提供了它的運(yùn)行時(shí)信息,CreateNewTool會動態(tài)地創(chuàng)建CBCGPUserTool的派生對象。

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();