VC,MFC的对话框应用程序中怎么改变工具栏的背景?大家帮帮忙,多谢了!!! VC,MFC的对话框应用程序中怎么改变工具栏的背景?大家帮帮忙,多谢了!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 SetBkMode不是CToolBar类的成员函数啊 子类化 应该没问题[/Quote]子类化?怎么做,有具体的例子吗?我是新手,不太懂啊? http://www.vckbase.com/document/viewdoc/?id=241 子类化toolbar的一个例子http://www.codeproject.com/KB/toolbars/truecolortoolbar.aspx子类化控件的介绍http://blog.csdn.net/woshishushangdezhu/archive/2009/02/26/3940973.aspx http://221.199.150.103/jsj/Html/vc/wen/vcwen08.htm 答一楼的话:工具栏其实是放在一个叫ReBar的容器里的所以你平时看到的空的那部分其实是ReBar的一个ReBar可以放好多个工具栏,有对齐的,也可以不对齐对工具栏设置的背景色是看不到的,被按钮遮挡了你必须定义ReBar的变量然后操作Rebar设置其背景颜色或图片并在框架的Create里将该ReBar替换默认的ReBar回答完毕,请结贴 你说的实例是在文档应用程序中的,而且是实现了真彩工具栏图标,我说的是工具条的背景,就像word中整个工具栏背景都是蓝色,就是这个蓝色的实现? 一、建立一个单文档项目 XXX;二、在CMainFrame类里添加变量如下 CStatusBar m_wndStatusBar; CToolBar m_wndToolBar; CReBar mReBar;//注意,这句是添加的变量三、在CMainFrame类的OnCreate里面添加 if (!m_wndToolBar.CreateEx(this,...... ||!m_wndToolBar.LoadToolBar(IDR_MAINFRAME)) { TRACE0("Failed to create toolbar\n"); return -1; // fail to create } //上面是系统自己创建的,下面是需要添加的 mReBar.Create(this); mReBar.AddBar(&m_wndToolBar); mReBar.RedrawWindow(); REBARBANDINFO info; info.cbSize=sizeof(info); info.fMask = RBBIM_BACKGROUND; m_wndToolBar.ModifyStyle(0,0x8000); info.hbmBack =::LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BBK)); mReBar.GetReBarCtrl().SetBandInfo(0,&info);四、屏蔽掉浮动工具栏的代码,即将这三句代码注释掉 //m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY); //EnableDocking(CBRS_ALIGN_ANY); //DockControlBar(&m_wndToolBar); 五、增加位图资源IDB_BBK,该资源将作为画刷填充ReBar; 试过了,在SDI中可用,可是到对话框应用程序中就不行了,原来能显示的工具栏,经过上面的修改后,不见了 同意,不过俺认为那是嵌一个frame。 老大,我想请教下,能否不重新创建CReBar,而直接采用系统自己的那个?还有,我用了你的方法试了下,结果两个ReBar重叠在了一起,效果不是很好! 关于_tcsicmp的错误 请教VC操作数据库的基本问题! 请问:如何将将BMP图片保存到word和excel文档 stl如何按降序排序 用_outp控制DO卡输出 一个从ACCESS中读取图片的问题,急急急 请问:如何获取按钮控件所处的屏幕坐标? 如何只Hook自己启动进程的消息!!! 怎么恢复已被删除地菜单?急! winpcap中pcap_next_ex抓包顺序 InternetSetCookie如何使用? byte数组操作问题
[/Quote]子类化?怎么做,有具体的例子吗?我是新手,不太懂啊?
http://www.codeproject.com/KB/toolbars/truecolortoolbar.aspx
子类化控件的介绍
http://blog.csdn.net/woshishushangdezhu/archive/2009/02/26/3940973.aspx
工具栏其实是放在一个叫ReBar的容器里的
所以你平时看到的空的那部分其实是ReBar的
一个ReBar可以放好多个工具栏,有对齐的,也可以不对齐
对工具栏设置的背景色是看不到的,被按钮遮挡了
你必须定义ReBar的变量
然后操作Rebar设置其背景颜色或图片
并在框架的Create里将该ReBar替换默认的ReBar回答完毕,请结贴
你说的实例是在文档应用程序中的,而且是实现了真彩工具栏图标,我说的是工具条的背景,就像word中整个工具栏背景都是蓝色,就是这个蓝色的实现?
二、在CMainFrame类里添加变量如下
CStatusBar m_wndStatusBar;
CToolBar m_wndToolBar;
CReBar mReBar;//注意,这句是添加的变量三、在CMainFrame类的OnCreate里面添加
if (!m_wndToolBar.CreateEx(this,...... ||!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
//上面是系统自己创建的,下面是需要添加的
mReBar.Create(this);
mReBar.AddBar(&m_wndToolBar);
mReBar.RedrawWindow();
REBARBANDINFO info;
info.cbSize=sizeof(info);
info.fMask = RBBIM_BACKGROUND;
m_wndToolBar.ModifyStyle(0,0x8000);
info.hbmBack =::LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BBK));
mReBar.GetReBarCtrl().SetBandInfo(0,&info);四、屏蔽掉浮动工具栏的代码,即将这三句代码注释掉
//m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
//EnableDocking(CBRS_ALIGN_ANY);
//DockControlBar(&m_wndToolBar);
五、增加位图资源IDB_BBK,该资源将作为画刷填充ReBar;
老大,我想请教下,能否不重新创建CReBar,而直接采用系统自己的那个?还有,我用了你的方法试了下,结果两个ReBar重叠在了一起,效果不是很好!