在资源编辑器中将ico导入或COPY到toolbar中的位图中
解决方案 »
- vc通过ado怎么连接sql
- 关于虚拟键盘的问题
- 前辈指点迷津 新手前进中的困惑
- 怎么控制软件的适用期?
- 请教高手新建类调用图片文件的问题,提示资源文件为undeclared identifier
- 关于qq登陆对话框的问题!
- 各位大侠救命win2000 server下为何得不到真正的IP
- 怎么把字符转换成字符串阿!:)
- 问 :下载了一个mfc和数据库有关系的源代码来分析 问 怎么能看清楚它的结构?
- 很简单的一个定时器,win7下总出现“未响应”,xp下没问题。
- 急但对大家只是是举手之劳,大送分。关于DLL.........
- 高手赐教!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
先在资源里添加BITMAP,两个(一个是冷图,一个是热图,IE里用的那样)!
在OnCreat函数里声明CImageList img;//给BITMAP if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))//IDR_MAINFRAME是TOOLBAR的资源ID
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create tool bar
} m_wndToolBar.GetToolBarCtrl().SetButtonWidth(40, 150);
m_wndToolBar.GetToolBarCtrl().SetExtendedStyle(TBSTYLE_EX_DRAWDDARROWS); img.Create(IDB_HOTTOOLBAR, 22, 0, RGB(255, 0, 255));
m_wndToolBar.GetToolBarCtrl().SetHotImageList(&img);
img.Detach();
img.Create(IDB_COLDTOOLBAR, 22, 0, RGB(255, 0, 255));
m_wndToolBar.GetToolBarCtrl().SetImageList(&img);
img.Detach();
m_wndToolBar.SetButtonStyle(8,TBSTYLE_BUTTON | TBSTYLE_DROPDOWN);//设置第8个按钮有下拉按钮(像IE的收藏夹)
m_wndToolBar.SetButtonStyle(12,TBSTYLE_BUTTON | TBSTYLE_DROPDOWN);//同上
m_wndToolBar.SetButtonStyle(19,TBSTYLE_BUTTON | TBSTYLE_DROPDOWN);
//为工具条加入标签文本
for(int i = 0; i < m_wndToolBar.GetCount(); i++)
{ UINT id = m_wndToolBar.GetItemID(i);
CString s;
if(!s.LoadString(id)) continue;
int j = s.Find(_T('\n'));
if(j < 0) continue;
s = s.Right(s.GetLength() - j - 1);
m_wndToolBar.SetButtonText(i,s);
}
// Adjust sizes to include text
CRect rect;
m_wndToolBar.GetItemRect(0,&rect);
m_wndToolBar.SetSizes(rect.Size(),CSize(22,20));//设置按钮尺寸和图象尺寸,前者应大于后者
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndToolBar);
通过以上代码就能制作出跟IE一样的TOOLBAR,我感觉应该比ICO的好,如果你一定要用ICO我也不阻拦你注意一点的是,上述代码产生的按钮能在按钮下面添加文字,文字你要在资源里添加,
Prompt里面写上 这是一个演示\n按钮将在状态条里显示“这是一个演示”
而“按钮”出现在按钮下面/