美化工具栏摘计
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;
}
发表评论
-
从配置文件的格式扯到GUI和CLI
2012-01-20 00:14 529从配置文件的格式扯到G ... -
J2ME游戏开发笔记整编版
2012-01-20 00:14 581J2ME游戏开发笔记整编版 ... -
多线程渲染(Multithreaded- rendering)3D引擎实例分析 : FlagshipEngine
2012-01-20 00:14 1337多线程渲染(Multithreaded- rendering) ... -
linux内核中断、异常、系统调用的分析以及实践
2012-01-20 00:14 1037linux内核中断、异常、系统调用的分析以及实践 2010年 ... -
Delphi 组件撰写常问问题
2012-01-20 00:14 714Delphi 组件撰写常问问题 2010年10月14日 ... -
跟着我去流浪
2012-01-19 01:06 597跟着我去流浪 2011年09 ... -
关于非诚勿扰
2012-01-19 01:06 700关于非诚勿扰 2012年01月17日 ... -
全国十大美女城市客观排行 2008/03/08 11:0
2012-01-19 01:06 535全国十大美女城市客观排行 2008/03/08 11:0 2 ... -
是谁成就了凤姐的忘形
2012-01-19 01:06 533是谁成就了凤姐的忘形 2010年06月02日 ... -
安全bios手册(5)
2012-01-17 00:29 684安全bios手册(5) 2010年06月20日 ... -
DDS 文件
2012-01-17 00:29 1383DDS 文件 2012年01月04日 dds是Direc ... -
2011-5-9
2012-01-17 00:29 7022011-5-9 2011年05月09日 ... -
GDI+入门(十三、GDI+实例――灰度效果)
2012-01-17 00:29 1050GDI+入门(十三、GDI+实例――灰度效果) 2011年1 ... -
演讲稿大全
2012-01-15 14:48 355演讲稿大全 2010年11月17日 演讲稿大全 ?? ... -
三年级如何写作文
2012-01-15 14:48 481三年级如何写作文 2009 ... -
大全【极有收藏价值的】
2012-01-15 14:48 588大全【极有收藏价值的 ...
相关推荐
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等系统的美化效果