彩票走势图

ActiveX 用户界面套包Xtreme Suite Pro必看:如何自定义应用程序主题

转帖|使用教程|编辑:鲍佳佳|2021-03-18 11:19:03.253|阅读 123 次

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

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

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;
     }


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn

文章转载自:

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP