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  工具栏按钮的热点效果

  • 相关阅读:
    yii2.0的学习之旅(一)
    elasticSearch查询(一)
    PHP--常用配置项
    php7和php5区别是什么
    做社交电商的朋友注意了!芬香的竞‌品出‌来了,小绿券,跟芬‌香几‌乎一‌模一样,但是这‌个邀请码3RIOQQ是刚刚流出的,我这里是第一手!
    为什么强烈推荐 Java 程序员使用 Google Guava 编程!
    MyBatis动态SQL(认真看看, 以后写SQL就爽多了)
    微软宣布加入 OpenJDK,打不过就改变 Java 未来!
    IntelliJ 平台 2020 年路线图
    年底了,整理了一份程序员面试必看的文章合集
  • 原文地址:https://www.cnblogs.com/liangxiaofeng/p/3548789.html
Copyright © 2011-2022 走看看