原創|其它|編輯:郝浩|2012-11-06 10:29:41.000|閱讀 638 次
概述:使用Xtreme Toolkit Pro創建自定義主題步驟,附加源碼。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
通過繼承toolkit中的任一可用的主題類,你可以制作自定義主題。步驟如下:
1、新建一個類,派生自 toolkit中的預定義主題,我們將使用CXTPDefaultTheme;
class CDoubleGripperTheme : public CXTPDefaultTheme { ... };
2、覆蓋 CXTPDefaultTheme 基類(查看XTPPaintManager.h)的DrawCommandBarGripper函數. 可以畫命令欄把手添加定制外觀:
class CDoubleGripperTheme : public CXTPDefaultTheme { virtual CSize DrawCommandBarGripper( CDC* pDC, CXTPCommandBar* pBar, BOOL bDraw); }; // DrawCommandBarGripper函數. // bDraw 為假返回 gripper size. // bDraw 為真,繪制gripper. CSize CDoubleGripperTheme::DrawCommandBarGripper(CDC *pDC, CXTPCommandBar *pBar, BOOL bDraw) { // If 工具欄垂直停靠 if (pBar->GetPosition() == xtpBarRight || pBar->GetPosition() == xtpBarLeft) { if (bDraw) { CXTPClientRect rc(pBar); Draw3dRect(pDC, CRect(3, 3, rc.right - 3, 6), COLOR_BTNHILIGHT, COLOR_3DSHADOW); Draw3dRect(pDC, CRect(3, 7, rc.right - 3, 10), COLOR_BTNHILIGHT, COLOR_3DSHADOW); } return CSize(0, 10); } // if 工具欄水平停靠 elseif (pBar->GetPosition() == xtpBarTop || pBar->GetPosition() == xtpBarBottom) { CXTPClientRect rc(pBar); if (bDraw) { Draw3dRect(pDC, CRect(3, 3, 6, rc.bottom - 3),COLOR_BTNHILIGHT, COLOR_3DSHADOW); Draw3dRect(pDC, CRect(7, 3, 10, rc.bottom - 3),COLOR_BTNHILIGHT, COLOR_3DSHADOW); } return CSize(10, 0); } else return CXTPDefaultTheme::DrawCommandBarGripper(pDC, pBar, bDraw); }
3、在CMainFrame::OnCreate()方法中調用 CXTPPaintManager::SetCustomTheme
使用我們剛創建的主題風格:
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { ... //使用自己的主題風格繪制命令欄grippers. CXTPPaintManager::SetCustomTheme(new CDoubleGripperTheme()); return 0; }
展示自定義主題風格的MDI 示例程序:
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都控件