CReBar工具条的使用,添加文本框无法控制大小和位置

时间:2022-11-09 10:26:52
如题,在对话框程序,自定义了一个工具栏,然后利用CReBar添加背景图片,然后在CReBar里面添加个文本框,代码如下:
m_Rebar.Create(this);//创建窗口(控件)
m_Rebar.AddBar(&m_Toolbar);//添加m_Toolbar为子窗口
CEdit* pEdit = new CEdit();
pEdit->Create(WS_VISIBLE, CRect(0,0,100,50),this, 1023);
// pEdit->MoveWindow(20,0,50,50);
m_Rebar.AddBar(pEdit,NULL,NULL, RBBS_NOGRIPPER);
m_Rebar.RedrawWindow();//重画窗口
REBARBANDINFO info;
info.cbSize=sizeof(info);
info.fMask=RBBIM_BACKGROUND;
m_Toolbar.ModifyStyle(0,TBSTYLE_TRANSPARENT);//设置工具栏背景色透明
info.hbmBack=LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_TOOLBACK));//加载位图
m_Rebar.GetReBarCtrl().SetBandInfo(0,&info);
RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);
问题1、文本框倒是能添加进去,但就是位置和大小不能控制,我通过来回调节pEdit->Create(WS_VISIBLE, CRect(0,0,100,50),this, 1023)中间CRect大小,能改变,但有些随机,看不懂依据什么原则调整的文本框大小和位置,然后抱着一点希望尝试MoveWindow,发现还是不行,纳闷ing
问题2、添加了一个长条形的图片作为背景,但是程序默认将这个图片循环放置,一个长条接着一个长条,直到对话框边界,这又是什么原因呢?
谁用过这个东东,给点建议,谢了哈!

4 个解决方案

#1


首先声明,这个控件没用过,不过所有BAR类型控件都有普遍问题。
问题1:
你这个this是主窗体还是m_Rebar。这很关键。

问题2:
你提出的是类似windows的桌面的平铺效果的,你应该能设置为拉伸效果的

#2


to tiger9991
(Reborn)
1、我上面的代码是写在对话框的初始化函数中的,this为对话框
2、对,目前显示的平铺效果,但我希望的是原始效果(图片多大就显示多大,我量体裁衣设计图片就可以)或者拉伸效果。但这个控件的资料实在是少之又少,看MSDN又很繁冗,没找到需要的东西,我试过设置
REBARBANDINFO info;这个结构的成员,还是无法操纵,来论坛求救来了,呵呵

#3


自己顶起啊,难道这个控件微软发明出来就是束之高阁的,有懂的人给指点下啊,tks!

#4


楼主这个问题如何解决的?我的CEdit位置不在我预料的地方出现,看起来像是两个Band覆盖了!

#1


首先声明,这个控件没用过,不过所有BAR类型控件都有普遍问题。
问题1:
你这个this是主窗体还是m_Rebar。这很关键。

问题2:
你提出的是类似windows的桌面的平铺效果的,你应该能设置为拉伸效果的

#2


to tiger9991
(Reborn)
1、我上面的代码是写在对话框的初始化函数中的,this为对话框
2、对,目前显示的平铺效果,但我希望的是原始效果(图片多大就显示多大,我量体裁衣设计图片就可以)或者拉伸效果。但这个控件的资料实在是少之又少,看MSDN又很繁冗,没找到需要的东西,我试过设置
REBARBANDINFO info;这个结构的成员,还是无法操纵,来论坛求救来了,呵呵

#3


自己顶起啊,难道这个控件微软发明出来就是束之高阁的,有懂的人给指点下啊,tks!

#4


楼主这个问题如何解决的?我的CEdit位置不在我预料的地方出现,看起来像是两个Band覆盖了!