zoukankan      html  css  js  c++  java
  • 工具栏执点效果

    6.2.5  工具栏按钮的热点效果

    将工具栏设置成具有热点效果可以美化程序界面。

    实现步骤如下。

    (1)创建一个基于对话框的应用程序。

    (2)向对话框中添加一个按钮控件,并向程序中导入16个图标。

    (3)在主窗口头文件中声明一个CToolBar类对象m_ToolBar和两个图像列表对象m_ImageList、m_HotImageList,代码如下:

    CToolBar m_ToolBar;

    CImageList m_ImageList;

    CImageList m_HotImageList;

    其中,m_ImageList是工具栏按钮的图像列表对象,m_HotImageList是工具栏按钮的热点图像列表对象。

    (4)在OnInitDialog函数中加载图标,关联图像列表,创建工具栏,代码如下:

    BOOL CHotToolDlg::OnInitDialog()

    {

        ……

        // TODO: Add extra initialization here

        m_ImageList.Create(32,32,ILC_COLOR24|ILC_MASK,1,1);     //创建图像列表

        m_HotImageList.Create(32,32,ILC_COLOR24|ILC_MASK,1,1); //创建热点图像列表

        //向图像列表中添加图标

        m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON1));

        m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON2));

        m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON3));

        m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON4));

        m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON5));

        m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON6));

        m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON7));

        m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON8));

        m_HotImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON9));

        m_HotImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON10));

        m_HotImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON11));

        m_HotImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON12));

        m_HotImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON13));

        m_HotImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON14));

        m_HotImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON15));

        m_HotImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON16));

      

        UINT array[10];

        for(int i=0;i<9;i++)

        {

           if(i= =3 || i= =7)

                 array[i] = ID_SEPARATOR; //第4、第8个按钮为分隔条

           else

                 array[i] = i+1001;

        }

        m_ToolBar.CreateEx(this,TBSTYLE_FLAT); //创建工具栏窗口

        m_ToolBar.SetButtons(array,10);

        m_ToolBar.SetButtonText(0,"新建");

        m_ToolBar.SetButtonText(1,"打开");

        m_ToolBar.SetButtonText(2,"保存");

        m_ToolBar.SetButtonText(4,"剪切");

        m_ToolBar.SetButtonText(5,"复制");

        m_ToolBar.SetButtonText(6,"粘贴");

        m_ToolBar.SetButtonText(8,"打印");

        m_ToolBar.SetButtonText(9,"帮助");

        //关联图像列表

        m_ToolBar.GetToolBarCtrl().SetImageList(&m_ImageList);

        //关联热点图像列表

        m_ToolBar.GetToolBarCtrl().SetHotImageList(&m_HotImageList);

        m_ToolBar.SetSizes(CSize(40,40),CSize(32,32)); //设置按钮和图标的大小

        RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0); //显示工具栏

        return TRUE;

    }

    在创建具有热点效果的工具栏时,需要使用CreateEx创建工具栏窗口,只有创建的工具栏窗口具有TBSTYLE_FLAT属性时,工具栏按钮才具有热点效果。然后要使用工具栏控制类的SetHotImageList方法关联热点图像列表。

    程序运行结果如图6.30所示。

    图6.30  工具栏按钮的热点效果

  • 相关阅读:
    BZOJ2002 [HNOI2010] 弹飞绵羊
    BZOJ1030 [JSOI2007] 文本生成器
    BZOJ3233 [AHOI2013] 找硬币
    BZOJ4269 再见xor
    BZOJ5297 CQOI2018 社交网络
    LOJ149 0/1分数规划
    BZOJ2132 圈地计划
    UOJ131 [NOI2015] 品酒大会
    composer速度慢(composer更换国内镜像)
    thinkphp6安装报错,composer install tp6 报错 Parse error: syntax error
  • 原文地址:https://www.cnblogs.com/liangxiaofeng/p/3548789.html
Copyright © 2011-2022 走看看