Xtreme Suite Pro使用教程:如何创建应用程序自定义主题

翻译|使用教程|编辑:鲍佳佳|2020-08-05 10:22:46.820|阅读 28 次

概述:本文主要是对codejock的suite Pro中的commandBars创建应用程序自定义主题进行详细的介绍。包含创建步骤以及相应程序代码效果图等。

# 正版采购狂欢节,企业采购正当时 #

Codejock 软件的Xtreme Command Bars 提供非常漂亮的Office风格的命令条和One Note样式的Tab. 这种构架完全支持菜单和工具栏的个性化设置, 它将在应用程序工作台上给你更大的控制权, Xtreme Command Bars提供嵌入式主题支持,允许你选择预先定义的主题如Officexp、Office 2003、 Visual Studio .NET,或者自定义主题。它是Xtreme Suite的一部分。

点击下载Xtreme Command Bars最新试用版

为您的应用程序创建自定义主题

您可以通过从工具包中可用的任何主题类派生一个类来为您的应用程序创建自定义主题。

创建类似于Visual Studio 6.0的双重抓取器主题。

  1. 创建一个新类,可以工具包中找通过预定义主题实现。我们将使用CXTPDefaultTheme,但是您可以使用以下任何主题类:

    CXTPDefaultTheme to inherit Office 2000 theme
    CXTPOfficeTheme to inherit Office XP theme
    CXTPOffice2003Theme to inherit Office 2003 theme
    CXTPNativeXPTheme to inherit Native XP theme

    class CDoubleGripperTheme : public CXTPDefaultTh
  2. 重写CXTPDefaultTheme基类的DrawCommandBarGripper(请参阅XTPPaintManager.h)。这样我们就能够添加自己的自定义外观以绘制命令栏抓手
  3.  class CDoubleGripperTheme : public CXTPDefaultTheme
     {
         virtual CSize DrawCommandBarGripper(
             CDC* pDC, CXTPCommandBar* pBar, BOOL bDraw);
     };
    
     [...]
    
     // DrawCommandBarGripper function. 
     // if bDraw if FALSE must return gripper size.
     // if bDraw is TRUE must draw gripper.  
     CSize CDoubleGripperTheme::DrawCommandBarGripper(CDC* pDC,
          CXTPCommandBar* pBar, BOOL bDraw)
     {
         // If Toolbar is vertical docked
         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 Toolbar is horizontal  docked 
         else if (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);
             }
        }
        return CXTPDefaultTheme::DrawCommandBarGripper(pDC, pBar, bDraw);
     }
  4. 从CMainFrame的OnCreate方法调用CXTPPaintManager :: SetCustomTheme以使用我们刚刚创建的主题
  5.  int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
     {
         ...
    
             // Use our own theme for drawing command bar grippers.
             CXTPPaintManager::SetCustomTheme(new
             CDoubleGripperTheme());
    
         return 0;
     }


如果你对我们的产品感兴趣或者有任何疑问,欢迎咨询慧都在线客服>>

慧都高端UI界面开发


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,尊重他人劳动成果

文章转载自:Codejock

登录 慧都网发表评论


暂无评论...

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
title
相关厂商
相关产品
Xtreme Suite Pro

为Windows开发人员提供的用于ActiveX COM的用户界面套包。

在线
客服
咨询
电话
400-700-1020
在线
QQ
购物车 反馈 返回
顶部
在线客服系统
live chat