问一个工具栏图标的问题 看了别人的一个软件,他的图标在安装目录下(见附件),是由6个64x64的图标组成的Bmp文件。他是如何导入到工具栏,实现分割的 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 BOOL CToolBar::LoadToolBar(LPCTSTR lpszResourceName){ ASSERT_VALID(this); ASSERT(lpszResourceName != NULL); // determine location of the bitmap in resource fork HINSTANCE hInst = AfxFindResourceHandle(lpszResourceName, RT_TOOLBAR); HRSRC hRsrc = ::FindResource(hInst, lpszResourceName, RT_TOOLBAR); if (hRsrc == NULL) return FALSE; HGLOBAL hGlobal = LoadResource(hInst, hRsrc); if (hGlobal == NULL) return FALSE; CToolBarData* pData = (CToolBarData*)LockResource(hGlobal); if (pData == NULL) return FALSE; ASSERT(pData->wVersion == 1); UINT* pItems = new UINT[pData->wItemCount]; for (int i = 0; i < pData->wItemCount; i++) pItems[i] = pData->items()[i]; BOOL bResult = SetButtons(pItems, pData->wItemCount); delete[] pItems; if (bResult) { // set new sizes of the buttons CSize sizeImage(pData->wWidth, pData->wHeight); CSize sizeButton(pData->wWidth + 7, pData->wHeight + 7); SetSizes(sizeButton, sizeImage); // load bitmap now that sizes are known by the toolbar control bResult = LoadBitmap(lpszResourceName); } UnlockResource(hGlobal); FreeResource(hGlobal); return bResult;}这是MFC里调用工具栏的代码,看一下就明白了,可以自动分割的 在Resource中将bmp文件一个一个的导入,然后Ctrl+C,然后在ToolBar中Ctrl+v,就实现分割了 http://photos.i.cn.yahoo.com/photo-M3I2oAwpcqe8elt2Jkwpyrs-?cq=1&aid=80f0&pid=ff64.jpg#doc-body图片没有贴上,可能您搞错我的意思了 呵呵,你可以建立一个SDI工程看一下,对于工具栏上的分割图标,在工程的Res中是以整个bmp文件存在的,也就是说,如果你在工具栏上一个一个的添加,vc会自动生成一个Bmp文件的 制作工具栏一般的方法是:制作几个不同状态的图标(ICON),就想你图片上显示的那几个图标一样,然后一个一个的导入Resource中,再复制拷贝到ToolBar中,那样编译工程,你就会在Res中看到几个图标已经不是单独的图标了,而是一整个bmp文件了 ctoolbarctrl 有imagelistctrl成员吧 MFC 滚动条问题 CListCtrl列表头拖放完后,再重绘 如何在两个属性页之间交换数据 急求COM“宝典专著”《COM原理与应用》 关于窗口的菜鸟级问题 如何把16进制机器码写入文件??? 如何进行网页跟踪,请大侠指点,急!!!!!!!!!!!! ===========遇到一个关于CScrollView的问题================= 如何用vc++提取超链接后打开网页,并能在网页上进行操作? 我就纳闷了,AT指令AT+CMGR=index 的困惑? SAPI5.1求助 ::AfxBeginThread(RUNTIME_CLASS(CWinThread));
{
ASSERT_VALID(this);
ASSERT(lpszResourceName != NULL); // determine location of the bitmap in resource fork
HINSTANCE hInst = AfxFindResourceHandle(lpszResourceName, RT_TOOLBAR);
HRSRC hRsrc = ::FindResource(hInst, lpszResourceName, RT_TOOLBAR);
if (hRsrc == NULL)
return FALSE; HGLOBAL hGlobal = LoadResource(hInst, hRsrc);
if (hGlobal == NULL)
return FALSE; CToolBarData* pData = (CToolBarData*)LockResource(hGlobal);
if (pData == NULL)
return FALSE;
ASSERT(pData->wVersion == 1); UINT* pItems = new UINT[pData->wItemCount];
for (int i = 0; i < pData->wItemCount; i++)
pItems[i] = pData->items()[i];
BOOL bResult = SetButtons(pItems, pData->wItemCount);
delete[] pItems; if (bResult)
{
// set new sizes of the buttons
CSize sizeImage(pData->wWidth, pData->wHeight);
CSize sizeButton(pData->wWidth + 7, pData->wHeight + 7);
SetSizes(sizeButton, sizeImage); // load bitmap now that sizes are known by the toolbar control
bResult = LoadBitmap(lpszResourceName);
} UnlockResource(hGlobal);
FreeResource(hGlobal); return bResult;
}这是MFC里调用工具栏的代码,看一下就明白了,可以自动分割的
图片没有贴上,可能您搞错我的意思了