CMFCToolBar 如何改变按钮上的位图 本帖最后由 fendouzhe 于 2013-03-26 14:34:12 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 代码:void CMainFrame::CreateMyToolBar3(){ m_myToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_RIGHT | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC); const int nSize = 2; UINT arr[nSize]; for (int i = 0; i < nSize; i++) { arr[i] = IDTB_BUTTON+i; } m_myToolBar.SetButtons(arr, nSize); m_myToolBar.SetWindowText(_T("My ToolBar")); CBitmap bm; bm.LoadBitmap(IDB_BITMAP1); m_imageList.Create(16,16,ILC_COLOR32|ILC_MASK,0,0); m_imageList.Add(&bm,RGB(0,0,0)); m_imageToolbar.CreateFromImageList(m_imageList); m_myToolBar.SetSizes(CSize(16,16),CSize(16,16)); m_myToolBar.SetUserImages(&m_imageToolbar); for (int i = 0; i < nSize; i++) { m_myToolBar.SetButtonInfo(i, IDTB_BUTTON+i, TBSTYLE_BUTTON, i+1);//我想从第二个位置开始取位图图片。 }}通过这种方式加载的位图并不是IDB_BITMAP1,而是系统默认工具栏中的位图,因为SetUserImages是静态函数,难道在别的地方对我的设置进行了更改? “SetUserImages” 自己写的 ?看看代码 SendMessage(hWndToolbar,TB_CHANGEBITMAP ,IDM_XXXX,x);IDM_XXXX 是 某按钮的 命令 IDx 是 当前 imagelist 里 有 的 iBitmap。 请问 IDTB_BUTTON是什么啊 怎么定义的 有 IDTB_BUTTON+i这种定义方法么 高中生走VC++/MFC 想制作一个棋牌类游戏,需要哪些知识!! 关于WM_INITDIALOG windows程序设计示例和MSDN解析中的冲突 GetPrivateProfileSection()的问题 如何改变VS2005左边的颜色 用ISAPI如何连接数据库? 请教关于#import指令的使用 有关 VC 中那个函数是产生随机数的??谢谢!! 如何确定当前进程中的线程数目及状态 请教专家: socket如何让接收与发送不相互影响 怎么把中文字符转成unicode后显示在窗口上?
void CMainFrame::CreateMyToolBar3()
{ m_myToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_RIGHT | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC); const int nSize = 2;
UINT arr[nSize];
for (int i = 0; i < nSize; i++)
{
arr[i] = IDTB_BUTTON+i;
}
m_myToolBar.SetButtons(arr, nSize);
m_myToolBar.SetWindowText(_T("My ToolBar")); CBitmap bm;
bm.LoadBitmap(IDB_BITMAP1);
m_imageList.Create(16,16,ILC_COLOR32|ILC_MASK,0,0);
m_imageList.Add(&bm,RGB(0,0,0));
m_imageToolbar.CreateFromImageList(m_imageList);
m_myToolBar.SetSizes(CSize(16,16),CSize(16,16));
m_myToolBar.SetUserImages(&m_imageToolbar);
for (int i = 0; i < nSize; i++)
{
m_myToolBar.SetButtonInfo(i, IDTB_BUTTON+i, TBSTYLE_BUTTON, i+1);//我想从第二个位置开始取位图图片。
}
}
通过这种方式加载的位图并不是IDB_BITMAP1,而是系统默认工具栏中的位图,因为SetUserImages是静态函数,难道在别的地方对我的设置进行了更改?
看看代码
x 是 当前 imagelist 里 有 的 iBitmap。