1、初学乍练 VC 中 如何给空白的工具栏图标加上位图发布: 2009-4-18 10:21 | 作者: 本站整理 | 来源: 网络转载 | 查看: 45 次VC 中 如何给空白的工具栏图标加上位图 -回复-SetBitmap、SetButtonInfo。 -回复-做好位图工具栏然后 LoadBitmap -回复-使用 LoadBitmap 需要一个完整的位图,我的位图是单个的,一共 6 个bitmap,怎么弄? -回复-顶啊 -回复-动态真彩工具栏,以前仿这个实现过 BOOL CMainFrame:CreateExToolBar() CImageList img; CString str; if
2、(!m_wndReBar.Create(this) return -1; if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) return -1; /下面的代码是设置按钮的宽度和长度 m_wndToolBar.GetToolBarCtrl().SetButtonWidth(40, 80); /下面的代码是设置“热“的位图 img.Create(22, 22, ILC_COLOR8|ILC_
3、MASK,2,2); img.SetBkColor(:GetSysColor(COLOR_BTNFACE); img.Add(AfxGetApp()-LoadIcon(IDI_ICON_MSG_GETBUTTON);/0 收信 img.Add(AfxGetApp()-LoadIcon(IDI_ICON_MSG_WRITEMSGBTN);/1 写信 img.Add(AfxGetApp() -LoadIcon(IDI_ICON_MSG_TELBOOK);/2 电话本 img.Add(AfxGetApp()-LoadIcon(IDI_ICON_MSG_RECIEVBOX);/3收信 img.Add(
4、AfxGetApp()-LoadIcon(IDI_ICON_MSG_SENDBOX);/4发信 img.Add(AfxGetApp() -LoadIcon(IDI_ICON_MSG_DELETEED); /5废信 img.Add(AfxGetApp()-LoadIcon(IDI_ICON_MSG_REFRESH); /6 刷新 img.Add(AfxGetApp()-LoadIcon(IDI_ICON_MSG_REFRESHALL); /7全部刷新 img.Add(AfxGetApp() -LoadIcon(IDI_ICON_MSG_CHANGEPASS); /8 口令 img.Add(Afx
5、GetApp()-LoadIcon(IDI_ICON_MSG_LOCKSYS); /9 锁定系统 img.Add(AfxGetApp()-LoadIcon(IDI_ICON_MSG_SETSYS); /10 设置 img.Add(AfxGetApp()-LoadIcon(IDI_ICON_MSG_EXIT); /11 退出 img.Add(AfxGetApp()-LoadIcon(IDR_MAINFRAME);/关于 img.Add(AfxGetApp()-LoadIcon(IDI_COM_CONTROL);/系统状态 img.Add(AfxGetApp()-LoadIcon(IDI_ICON
6、_MSG_SRC);/班级管理 m_wndToolBar.GetToolBarCtrl().SetHotImageList( img.Detach(); /下面的代码是设置“冷“的位图 img.Create(19, 19, ILC_COLOR8|ILC_MASK, 2,2); img.SetBkColor(:GetSysColor(COLOR_BTNFACE); img.Add(AfxGetApp()-LoadIcon(IDI_ICON_MSG_GETBUTTON);/0 收信 img.Add(AfxGetApp() -LoadIcon(IDI_ICON_MSG_WRITEMSGBTN);/1
7、 写信 img.Add(AfxGetApp()-LoadIcon(IDI_ICON_MSG_TELBOOK);/2 电话本 img.Add(AfxGetApp()-LoadIcon(IDI_ICON_MSG_RECIEVBOX);/3收信 img.Add(AfxGetApp() -LoadIcon(IDI_ICON_MSG_SENDBOX);/4发信 img.Add(AfxGetApp()-LoadIcon(IDI_ICON_MSG_DELETEED); /5废信 img.Add(AfxGetApp()-LoadIcon(IDI_ICON_MSG_REFRESH); /6 刷新 img.Add
8、(AfxGetApp() -LoadIcon(IDI_ICON_MSG_REFRESHALL); /7全部刷新 img.Add(AfxGetApp()-LoadIcon(IDI_ICON_MSG_CHANGEPASS); /8 口令 img.Add(AfxGetApp()-LoadIcon(IDI_ICON_MSG_LOCKSYS); /9 锁定系统 img.Add(AfxGetApp()-LoadIcon(IDI_ICON_MSG_SETSYS); /10 设置 img.Add(AfxGetApp()-LoadIcon(IDI_ICON_MSG_EXIT); /11 退出 img.Add(A
9、fxGetApp()-LoadIcon(IDR_MAINFRAME);/关于 12 img.Add(AfxGetApp()-LoadIcon(IDI_COM_CONTROL);/系统状态 13 img.Add(AfxGetApp()-LoadIcon(IDI_ICON_MSG_SRC);/班级管理 14 m_wndToolBar.GetToolBarCtrl().SetImageList( img.Detach(); /改变属性 m_wndToolBar.ModifyStyle(0, TBSTYLE_FLAT |CBRS_TOOLTIPS | TBSTYLE_TRANSPARENT|TBBS_
10、CHECKBOX ); m_wndToolBar.SetButtons(NULL,21); / set up each toolbar button 设置文字 m_wndToolBar.SetButtonInfo(0, IDC_WRITEMSG, TBSTYLE_BUTTON, 1); m_wndToolBar.SetButtonText(0, “写信“); m_wndToolBar.SetButtonInfo(1, IDC_GETALLSIM, TBSTYLE_BUTTON, 0); m_wndToolBar.SetButtonText(1, “收信“); m_wndToolBar.SetB
11、uttonInfo(2, IDC_MSG_BUTTONSPLI, TBBS_SEPARATOR, 0); m_wndToolBar.SetButtonInfo(3, IDC_SCHOOL_REPORT_CARD, TBSTYLE_BUTTON, 14); m_wndToolBar.SetButtonText(3, “成绩管理“); m_wndToolBar.SetButtonInfo(4, IDC_MSG_BUTTONSPLI, TBBS_SEPARATOR, 0); m_wndToolBar.SetButtonInfo(5, IDC_TELBOOK, TBSTYLE_BUTTON, 2);
12、m_wndToolBar.SetButtonText(5, “电话本“); m_wndToolBar.SetButtonInfo(6, IDC_MSG_RECIEVED, TBSTYLE_BUTTON , 3); m_wndToolBar.SetButtonText(6, “收到短信“); m_wndToolBar.SetButtonInfo(7, IDC_MSG_SENDED, TBSTYLE_BUTTON , 4); m_wndToolBar.SetButtonText(7, “已发短信“); m_wndToolBar.SetButtonInfo(8, IDC_MSG_DELETED, T
13、BSTYLE_BUTTON, 5); m_wndToolBar.SetButtonText(8, “废件箱“); m_wndToolBar.SetButtonInfo(9, IDC_MSG_BUTTONSPLI, TBBS_SEPARATOR, 0); m_wndToolBar.SetButtonInfo(10, IDC_REFRESH, TBSTYLE_BUTTON , 6); m_wndToolBar.SetButtonText(10, “刷新“); m_wndToolBar.SetButtonInfo(11, IDC_REFRESHALL, TBSTYLE_BUTTON , 7); m_
14、wndToolBar.SetButtonText(11, “全部刷新“); m_wndToolBar.SetButtonInfo(12, IDC_MSG_BUTTONSPLI, TBBS_SEPARATOR, 0); m_wndToolBar.SetButtonInfo(13, IDC_USERPASSCHANGE, TBSTYLE_BUTTON , 8); m_wndToolBar.SetButtonText(13, “口令“); m_wndToolBar.SetButtonInfo(14, IDC_SYSLOCKED, TBSTYLE_BUTTON , 9); m_wndToolBar.S
15、etButtonText(14, “锁定“); m_wndToolBar.SetButtonInfo(15, IDC_SETMSG, TBSTYLE_BUTTON, 10); m_wndToolBar.SetButtonText(15, “设置“); m_wndToolBar.SetButtonInfo(16, IDC_SYSSTATE, TBSTYLE_BUTTON, 13); m_wndToolBar.SetButtonText(16, “系统信息“); m_wndToolBar.SetButtonInfo(17, IDC_MSG_BUTTONSPLI, TBBS_SEPARATOR, 0
16、); m_wndToolBar.SetButtonInfo(18, ID_APP_ABOUT, TBSTYLE_BUTTON, 12); m_wndToolBar.SetButtonText(18, “关于“); m_wndToolBar.SetButtonInfo(19,ID_APP_EXIT,TBSTYLE_BUTTON,11); m_wndToolBar.SetButtonText(19,“退出“); m_wndToolBar.SetButtonInfo(20,IDC_MSG_BUTTONSPLI,TBBS_SEPARATOR,11); CRect rectToolBar; /得到按钮的
17、大小 m_wndToolBar.GetItemRect(0, /设置按钮的大小 m_wndToolBar.SetSizes(rectToolBar.Size(), CSize(20,20); /在 Rebar 中加入 ToolBar m_wndReBar.AddBar( /改变一些属性 REBARBANDINFO rbbi; rbbi.cbSize = sizeof(rbbi);/这个是必须填 rbbi.fMask = RBBIM_CHILDSIZE | RBBIM_IDEALSIZE | RBBIM_SIZE|RBBIM_BACKGROUND; /工具条的宽度 rbbi.cxMinChild
18、 = rectToolBar.Width(); /高度 rbbi.cyMinChild = rectToolBar.Height(); /下面这行代码是为工具条加入背景位图,请注意上 rbbi.fMask 中RBBIM_BACKGROUND 标志 rbbi.hbmBack = LoadBitmap(:AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_TOOLBARBKMAP); rbbi.cx = rbbi.cxIdeal = rectToolBar.Width() * 10; m_wndReBar.GetReBarCtrl().SetBandInfo(0, return TRUE; -回复-可以把剪切板中的图直接复制到里面的打印 | 收藏此页 | 推荐给好友 | 举报