美化工具栏摘计
2011年02月06日
这种感觉就像是。。。。(以下省略1000字)
关于第三种MSDN没有讲的工具栏创建方法。。能够用来实现工具栏图片的动态改变
下面是偶写的鹰文:
Call the CreateEx() function of class CToolBar to create the Windows toolbar and attach it to the CToolBar object
/*
m_wndStyleToolbar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD|WS_VISIBLE|CBRS_TOP|CBRS_GRIPPER|CBRS_TOOLTIPS|CBRS_FLYBY|CBRS_SIZE_DYNAMIC);
*/
Construct a object of class CImageList and Call the Create() function to initialize;
/*
m_imgToobar.Create(32, 32, ILC_COLOR32|ILC_MASK, 0, 0);
*/
Add bitmap you want to make to button to the list
use the function of class CToolBar ,GetToolBarCtrl() to get the control of the object construct from CToolBar
Use one of the functions of the class CToolBarCtrl named SetImageList to tranfrom bitmaps stored in CImageList to toolbuttons
/*
CToolBarCtrl& tbc = m_wndStyleToolbar.GetToolBarCtrl();
tbc.SetImageList(&m_imgToobar);
*/
乡亲们,不求看懂但求看过。。。。
下面是有用的代码
//MainFrm.cpp
static TCHAR ToolbarStyle[][20] =
{
_T("AlienMorph"),
_T("Gant 风格版"),
_T("Milk 风格版"),
_T("PixOS 风格版"),
_T("Jr_32x32"),
_T("OS_X_32x32"),
_T("Smile_d_32x32"),
_T("XP_32x32")
};
static TCHAR BmpName[][20] =
{
_T("Add.bmp"),
_T("Benchmark.bmp"),
_T("Comment.bmp"),
_T("Convert.bmp"),
_T("Delete.bmp"),
_T("Exit.bmp"),
_T("Extract.bmp"),
_T("ExtractTo.bmp"),
_T("Find.bmp"),
_T("Info.bmp"),
_T("Lock.bmp"),
_T("Print.bmp"),
_T("Protect.bmp"),
_T("Repair.bmp"),
_T("Report.bmp"),
_T("SFX.bmp"),
_T("Test.bmp"),
_T("View.bmp"),
_T("VirusScan.bmp"),
_T("Wizard.bmp")
};
static TBBUTTON tb[] =
{
{ 0, 4000, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 },
{ 1, 4001, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 },//改变第二个参数为下拉菜单ID如ID_FILE_OPEN才能给力
{ 2, 4002, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 },
{ 3, 4003, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 },
{ 4, 4004, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 },
{ 5, 4005, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 },
{ 6, 4006, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 },
{ 7, 4007, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 },
{ 8, 4008, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 },
{ 9, 4009, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 },
{ 10, 4010, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 },
{ 11, 4011, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 },
{ 12, 4012, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 },
{ 13, 4013, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 },
{ 14, 4014, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 },
{ 15, 4015, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 },
{ 16, 4016, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 },
{ 17, 4017, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 },
{ 18, 4018, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 },
{ 19, 4019, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 }
};
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;
if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC|CBRS_BORDER_TOP) ||
!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
{
TRACE0("未能创建工具栏\n");
return -1; // 未能创建
}
if (!m_wndStatusBar.Create(this) ||
!m_wndStatusBar.SetIndicators(indicators,
sizeof(indicators)/sizeof(UINT)))
{
TRACE0("未能创建状态栏\n");
return -1; // 未能创建
}
// TODO: 如果不需要工具栏可停靠,则删除这三行
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndToolBar);
m_wndStyleToolbar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD|WS_VISIBLE|CBRS_TOP
|CBRS_GRIPPER|CBRS_TOOLTIPS|CBRS_FLYBY|CBRS_SIZE_DYNAMIC);
m_imgToobar.Create(32, 32, ILC_COLOR32|ILC_MASK, 0, 0);
LoadImageList(m_iIndex);
SetStyleToolbar();
m_wndStyleToolbar.SetSizes(CSize(32+7, 32+6), CSize(32, 32));
m_wndStyleToolbar.EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndStyleToolbar);
return 0;
}
//这是自己下拉菜单选项的消息处理函数,这里只写一个
void CMainFrame::OnAlienmorph()
{
// TODO: 在此添加命令处理程序代码
if(m_iIndex != 0)
{
m_iIndex = 0;
LoadImageList(m_iIndex);
SetStyleToolbar();
}
}
//下面是主要函数,只可意会不可言传,嘿嘿
BOOL CMainFrame::LoadImageList(int iIndex)
{
int iTotal = sizeof(BmpName) / sizeof(BmpName[0]);
int i = 0;
TCHAR strPath[MAX_PATH] = { 0 };
TCHAR strFull[MAX_PATH] = { 0 };
HBITMAP hBitmap = NULL;
while(m_imgToobar.Remove(0));
GetCurrentDirectory(MAX_PATH, strPath);
StrCat(strPath, _T("\\Themes\\"));
StrCat(strPath, ToolbarStyle[iIndex]);
StrCat(strPath, _T("\\Toolbar\\"));
for(i=0; ibmp;
bmp.Attach(hBitmap);
m_imgToobar.Add(&bmp, RGB(0, 0, 0));
bmp.DeleteObject();
}
return TRUE;
}
BOOL CMainFrame::SetStyleToolbar()
{
CToolBarCtrl& tbc = m_wndStyleToolbar.GetToolBarCtrl();
while(tbc.DeleteButton(0));
tbc.SetImageList(&m_imgToobar);
int i = 0;
int iButtons = sizeof(tb) / sizeof(tb[0]);
for(i=0; i<iButtons; ++i)
{
tbc.AddButtons(1, &tb);
}
return TRUE;
}
发表评论
-
html 特殊转义字符
2012-01-20 01:39 542html 特殊转义字符 2010年08月11日 HTM ... -
Notepad2 V4.1.24.62 免费版 是一个外观类似系统记事本的文本编辑工具
2012-01-20 01:39 530Notepad2 V4.1.24.62 免费版 是一个外观类似 ... -
简析HTML七种网页加密解密方法
2012-01-20 01:39 879简析HTML七种网页加密解 ... -
IIS服务器排错指南及错误代码大全
2012-01-20 01:39 680IIS服务器排错指南及错误代码大全 2011年06月22日 ... -
游侠在线自由测试版正式发布啦!!!
2012-01-20 01:39 566游侠在线自由测试版正式发布啦!!! 2010年08月26日 ... -
DDS 文件
2012-01-19 09:29 717DDS 文件 2012年01月04日 dds是Direc ... -
2011-5-9
2012-01-19 09:29 2632011-5-9 2011年05月09日 ... -
GDI+入门(十三、GDI+实例――灰度效果)
2012-01-19 09:28 680GDI+入门(十三、GDI+实例――灰度效果) 2011年1 ... -
VB获取图象的象素
2012-01-19 09:28 831VB获取图象的象素 2011 ... -
vc网络编程常用函数2
2012-01-17 02:04 840vc网络编程常用函数2 20 ... -
延时批处理
2012-01-17 02:04 634延时批处理 2012年01月12日 举个例子,我们要延时 ... -
Zigbee入门指导(二)
2012-01-17 02:03 802Zigbee入门指导(二) 2010年08月06日 Zi ... -
socket 相关函数
2012-01-17 02:03 362socket 相关函数 2011年03 ... -
Extjs IE内存问题
2012-01-17 02:03 624Extjs IE内存问题 2011年08月25日 《1. ... -
毕业纪念册
2012-01-15 21:25 455毕业纪念册 2009年06月27日 -
客家风情二(你将再次捧腹大笑)
2012-01-15 21:25 693客家风情二(你将再次捧腹大笑) 2009年11月12日 ... -
心情日记
2012-01-15 21:25 328心情日记 2010年10月09日 前段时间 ... -
日语N1~N2听力通关必备知识汇总及讲解(一)
2012-01-15 21:25 368日语N1~N2听力通关必备知识汇总及讲解(一) 2010年1 ...
相关推荐
windows任务栏美化工具
简单易操作的美化工具,可半透明,换主题,开机不用启动,不占内存(需要13个压缩程序都下载)
利用API等技巧制作的VB浮动工具栏的源代码,仅供参考
win10任务栏透明美化工具,帮助你美化自己win10的任务栏。
powerbuilder源码,用于美化系统自带的菜单和工具,使用简单,交易非常好。放这里备份。
美化桌面,使用方便,使电脑用起来方便 美化桌面,使用方便,使电脑用起来方便 美化桌面,使用方便,使电脑用起来方便
WIN7美化任务栏
美化windows任务栏,可将图标居中显示,可将任务栏调整为透明色。
主要功能包括:恢复和改进开始菜单样式、个性化任务栏、资源管理器等功能。
用位图来美化工具条,如何让工具条变得漂亮呢?
重绘Menu和Tool,轻松实现美化,调用简单,只要在form构造函数中加入 ToolStripManager.Renderer = new ProfessionalToolStripRendererEx();就可以了
漂亮的工具栏美化工具,安装以后,可以对工具栏图标进行分组操作,让你抢先体验到win8的感觉..真的很方便哦!!!而且绝对免费,自动升级哦.....下载试试吧^^
windows进度条美化工具,没什么好说的。
简单易操作的美化工具,可半透明,换主题,开机不用启动,不占内存(需要13个压缩程序都下载)
这是一款使用方便的图像美化工具,简便易学,可以用来美化照片,美化图片,是众多图片收集爱好者的理想工具。 您可以用这款软件来处理您所需要的图片,主要功能包括自动曝光、数码补光、强力补光、数码减光、亮度...
U盘美化工具 U盘美化工具 U盘美化工具 U盘美化工具
图片美化工具图片美化工具图片美化工具图片美化工具
自动美化代码工具pb,自动格式划代码出 成双成对
这款软件相信用过的人都会爱上他的,他的界面为3D。它是轻型软件,不会浪费流量的,不过它有绑定类容,大家可以取舍,希望大家能喜欢
一款可以自主美化XP的工具,让XP系统可以拥有Vista等系统的美化效果