工具栏图标散开的问题?恳请高手帮助,分不够可再加

queshangxintou 2008-04-03 03:07:04
我用MFC框架做了一个多文档的程序,工具栏上的图是我用贴图贴上去的,是加在MainFrame添加我的代码的如下所示
CImageList	imagelist;
CBitmap bitmap;

bitmap.LoadBitmap(IDB_TOOLBAR_NOMAL);
imagelist.Create(24, 24, ILC_COLOR24 | ILC_MASK, 0, 1);
imagelist.Add(&bitmap, RGB(0,0,255));
m_wndTolBar.SendMessage(TB_SETIMAGELIST, 0, (LPARAM)imagelist.m_hImageList);
imagelist.Detach();
bitmap.Detach();
//
bitmap.LoadBitmap(IDB_TOOLBAR_DISABLE);
imagelist.Create(24, 24, ILC_COLOR24 | ILC_MASK, 0, 1);
imagelist.Add(&bitmap, RGB(0, 0, 255));
m_wndToolBar.SendMessage(TB_SETDISABLEDIMAGELIST, 0, (LPARAM)imagelist.m_hImageList);
imagelist.Detach();
bitmap.Detach();

其中IDB_TOOLBAR_NOMAL和IDB_TOOLBAR_DISABLE是我加载的工具栏图标,是bmp格式的,前者是彩色的,后者是黑白的
我的问题是程序运行过成中,工具栏图标会散开如下图所示

本来的工具栏图标如下所示

我也查了很多网上有关的说明,没发现问题出在那,关键是图标散开是不定期的,是偶尔才发生的,没有规律性可找
请各位高手帮忙给看看,分不够可再加
...全文
412 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
FATPETERYAN 2008-04-08
  • 打赏
  • 举报
回复
如果某一个图标宽度超出的话还是不会改变其它图标按钮的大小,只是分别显示在两个按钮中,可以排除这个原因
iyranly 2008-04-07
  • 打赏
  • 举报
回复
//创建图像列表,向图像列表中添加图标
CImageList imagelist;
CBitmap bitmap;

bitmap.LoadBitmap(IDB_TOOLBAR_NOMAL);
imagelist.Create(32, 32, ILC_COLOR24 | ILC_MASK, 0, 1);
imagelist.Add(&bitmap, RGB(0,0,255));

//创建工具栏
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))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}

m_wndToolBar.GetToolBarCtrl().SetImageList(&imagelist);
m_wndToolBar.GetToolBarCtrl().SetButtonSize(CSize(40,40));
m_wndToolBar.GetToolBarCtrl().SetBitmapSize(CSize(30,30));

// TODO: Delete these three lines if you don't want the toolbar to
// be dockable
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndToolBar);
  • 打赏
  • 举报
回复
与贴图原因不大,能否将MainForm部分源码提供一下,我们一起来分析一下.
hityct1 2008-04-05
  • 打赏
  • 举报
回复
原因是你说“工具栏上的图是我用贴图贴上去的”,也许原因就是在这。
hityct1 2008-04-05
  • 打赏
  • 举报
回复
应该是你的工具栏的某个图标过宽造成的。默认情况下各个图标是等宽的。
在你生成的exe程序上,将鼠标放在工具栏的某个图标上面,如果浮起的矩形框较宽的话,那应该就是这种原因。
queshangxintou 2008-04-05
  • 打赏
  • 举报
回复
to:ek78986
mainframe 中的源代码基本上没什么改变,就是添加了以上的那些代码你留个邮箱我可以给你发个例程
scq2099yt 2008-04-04
  • 打赏
  • 举报
回复
up
queshangxintou 2008-04-03
  • 打赏
  • 举报
回复
to:happyparrot
总共27个图标 是24*24的
长度应该是27*24
queshangxintou 2008-04-03
  • 打赏
  • 举报
回复
不好调 大部分时间不会出现散开的情况 散开只是偶尔出现的
快乐鹦鹉 2008-04-03
  • 打赏
  • 举报
回复
看上去差不多是宽度扩大成两倍了。你本身的工具条长度有多长?
datoucaicai 2008-04-03
  • 打赏
  • 举报
回复
可是怎么会散成那个样子呢?
没碰到过

如果可以的话,你做个例程发我邮箱datoucaicaicai@yahoo.com.cn
调试看看
queshangxintou 2008-04-03
  • 打赏
  • 举报
回复
多谢datoucaicai
你的办法可行
queshangxintou 2008-04-03
  • 打赏
  • 举报
回复
总算贴上去了
queshangxintou 2008-04-03
  • 打赏
  • 举报
回复
本来的工具栏图标如下所示
queshangxintou 2008-04-03
  • 打赏
  • 举报
回复
我的问题是程序运行过成中,工具栏图标会散开如下图所示

本来的工具栏图标如下所示
http://p.blog.csdn.net/images/p_blog_csdn_net/queshangxintou/376113/o_2.JPG
queshangxintou 2008-04-03
  • 打赏
  • 举报
回复
http://hi.baidu.com/%B4%A5%C3%D7%C9%FA%C7%E9/album/%C4%AC%C8%CF%CF%E0%B2%E1
这是我百度的相册地址 可以到这里看一下
就两张图片 就是我想贴上去的
快乐鹦鹉 2008-04-03
  • 打赏
  • 举报
回复
晕死。你的图片咋了
queshangxintou 2008-04-03
  • 打赏
  • 举报
回复
datoucaicai 2008-04-03
  • 打赏
  • 举报
回复
图片贴到csdn的bolg里试试看

//没测试过,呵呵
queshangxintou 2008-04-03
  • 打赏
  • 举报
回复
加载更多回复(9)

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧