制作高彩色工具栏

来源:互联网 发布:淘宝怎样看买家等级 编辑:程序博客网 时间:2024/06/02 23:50

       VC6.0自带的工具条编辑器太烂了,不想换都难,谁都想自己的程序界面看起来漂亮,这不仅仅是面子的问题,更重要的是界面的好坏,直接影响用户对程序的认知和认同。VC一直以来以其强大的功能横扫天下,但是到了界面上,就虎落平阳,被一些VBer,Delphier笑话,前几天,在csdn社区看到一篇文字,作者竟然说出Delphi比VC强这种话,真可以申请专利了,其观点之就是“VC能在菜单里加图标吗?Delphi就能”,“编程序不是自虐,我不想在像这样的小问题上受折磨”。如果编程都变成拼积木,还轮到你在这FP吗?

      先写工具栏的制作,以后再加上关于菜单图标的Tips。

      1.准备工具栏的位图,工具栏的位图很特别,一个按钮一个按钮的连在一起,需用图像处理的程序做这种位图,推荐用ToolBarEditor   http://soft.yxtv.cn/soft/newsoft/ToolbarEditor.zip 还需要一些稍加处理的工具,推荐用Photoshop http://www.17sun.net  制作32*32的位图工具条,当然,要彩色,比如256色或16位色的。然后进行去色处理,用作当工具栏按钮不可用时的显示效果。在进行高亮处理,用作鼠标滑过时高亮显示的效果,当然后两个可以不要,但是可能会影响效果,当按钮不可用时,就没法显示了。

    

   

    

     2.将三个图都导入工程,ID设为IDB_TOOLBAR,IDB_GRAYBAR,IDB_HOTBAR

     3.在MainFrm.h里声明变量

           CImageList   m_imglst, //容纳正常显示的工具条的图像列表

                              m_grayimglst,//容纳变灰工具条的图像列表

                              m_hotimglst;//容纳高亮显示的工具条的图像列表

     4.在MainFrame类的OnCreate()成员函数的return 0语句之前加入代码

            /*************Load BMP to ImageList for Customize ToolBar*****************/

           CBitmap bm;

           bm.LoadBitmap(IDB_TOOLBAR);

           m_imglst.Create(32,32, //size of BMP

                                 ILC_COLOR16//color of BMP  16bit color,  see MSDN    

                                  12,//number of toolbutton

                                  0  ) //number of alter

                m_imglst.Add(&bm,RGB(0,0,0) //Mask);

                bm.DeletObject;

               //also

                bm.LoadBitmap(IDB_GRAYBAR);
                m_grayimglst.Create(32,32,ILC_COLOR8,12,0);
                m_grayimglst.Add(&bm,RGB(0,0,0));
                bm.DeleteObject();

                bm.LoadBitmap(IDB_HOTBAR);
                m_hotimglst.Create(32,32,ILC_COLOR32,12,0);
                m_hotimglst.Add(&bm,RGB(0,0,0));
                bm.DeleteObject();

               /*****************Get Control of ToolBar***************/

                CToolBarCtrl& ctrl=m_wndToolBar.GetToolBarCtrl();

               /*****************Set ImageList for ToolBar***********/

                ctrl.SetDisabledImageList(&m_grayimglst);
                 ctrl.SetImageList(&m_imglst);
                 ctrl.SetHotImageList(&m_hotimglst);

           好了,that is all ,enjoy  you colorful toolbar!                     wanglei@keylab.net

          PS:   看到过一个老外的Tip,挺强的程序,基本没看懂

                 http://www.codeguru.com/Cpp/controls/toolbar/article.php/c2537


原创粉丝点击