pk2002z
2015-11-11 06:27
采纳率: 0%
浏览 2.4k

MFC工具栏图标显示不完整

各位csdn的各位大神好!
本人小白在学习MFC编程工具栏的设计过程中遇到了些麻烦,希望大神们指点指点。
正常显示的工具栏图标如下:
图片说明
然而我将正常工具栏的位图用在我的程序上却显示如下:
图片说明
图片的某些部位不能正常显示,如左边的箭头图标的某些部分跑到了右边箭头上去。
我在ToolBar中将图标的大小设置成Height:21,Width:22
程序中的代码是这样写的:
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
.................
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))
{
//theApp.m_bHiColorIcons ? IDR_MAINFRAME_256 : IDR_MAINFRAME
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
m_wndToolBar.SetHeight(50);
m_wndToolBar.SetSizes(CSize(60, 60), CSize(50, 50));
bitmap.LoadBitmap(IDB_TOOLBAR);//IDB_TOOLBAR为加载的位图资源
imageList.Create(40, 40, ILC_COLORDDB | ILC_MASK, 13, 1);
imageList.Add(&bitmap, RGB(192, 192, 192)); // RGB(192,192,192)是Win98的按扭颜色
m_wndToolBar.SendMessage(TB_SETIMAGELIST, 0, (LPARAM)imageList.m_hImageList);
........................
}

请各位大神指教如何通过修改程序,位图才能显示正确?另外我仿照的程序在VC6.0上显示正确,但是移植到VC2013上就有问题了。
请各位高手指教指教!分数不多,先给1C币,后面会加。

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • ysuwood 2015-11-11 08:02

    你看显示正常的工具栏图标是16*16,4位。你做的图标大了就显示不全。
    把你的图标改成16*16的就可以显示全了。

    打赏 评论
  • ysuwood 2015-11-11 08:09

    参考这个看看:

    打赏 评论
  • ysuwood 2015-11-11 08:12
    打赏 评论

相关推荐 更多相似问题