社区
界面
帖子详情
如何做一个只有2个combobox的toolbar?
luokun
2005-07-20 03:16:09
在工具条上添加2个combobox,但工具条上只有这2个 combobox 没有其它按钮
在运行的时候工具条无法显示。
添加 combobox 的方法是参照这里写的
http://www.vckbase.com/document/viewdoc/?id=469
有没有办法显示出来,或者用别的bar控件。
...全文
179
17
打赏
收藏
如何做一个只有2个combobox的toolbar?
在工具条上添加2个combobox,但工具条上只有这2个 combobox 没有其它按钮 在运行的时候工具条无法显示。 添加 combobox 的方法是参照这里写的 http://www.vckbase.com/document/viewdoc/?id=469 有没有办法显示出来,或者用别的bar控件。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yhl10000
2005-07-21
打赏
举报
回复
msn: yhl10000@hotmail.com
yhl10000
2005-07-21
打赏
举报
回复
我的email是
fish.yu@suzsoft.com
如果可能的话可以将源程序给我。
allenhiman
2005-07-21
打赏
举报
回复
m_wndToolBar.SetButtonInfo(index, ID_TOOL_ZOOM, TBBS_SEPARATOR, 80);
怀疑Index的值没取对?试个固定的比较大的index,看看是不是这得问题
(只是建议)
yhl10000
2005-07-21
打赏
举报
回复
要得不是这个源代码,这个在http://www.vckbase.com/document/viewdoc/?id=469 有,
需要的是你创建wndToolBar的源代码。
不知你调试过没有。
luokun
2005-07-21
打赏
举报
回复
int index = 0;
RECT rect;
while(m_wndToolBar.GetItemID(index) != ID_TOOL_ZOOM)
index++;
m_wndToolBar.SetButtonInfo(index, ID_TOOL_ZOOM, TBBS_SEPARATOR, 80);
m_wndToolBar.GetItemRect(index, &rect);
rect.top += 2;
rect.bottom += 200;
if(!m_wndToolBar.m_cmbZoom.Create(WS_CHILD|WS_VISIBLE| CBS_AUTOHSCROLL|
CBS_DROPDOWN | CBS_HASSTRINGS | WS_DISABLED, rect,
&m_wndToolBar, ID_TOOL_ZOOM))
{
TRACE0("Failed to create combo-box\n");
return FALSE;
}
while(m_wndToolBar.GetItemID(index) != ID_TOOL_SELECT)
index++;
m_wndToolBar.SetButtonInfo(index, ID_TOOL_SELECT, TBBS_SEPARATOR, 160);
m_wndToolBar.GetItemRect(index, &rect);
rect.top += 2;
rect.bottom += 200;
m_wndToolBar.SetHeight(60);
if(!m_wndToolBar.m_cmbSelect.Create(WS_CHILD | WS_VISIBLE | WS_VSCROLL|
CBS_DROPDOWNLIST | CBS_SORT | WS_DISABLED, rect,
&m_wndToolBar, ID_TOOL_SELECT))
{
TRACE0("Failed to create combo-box\n");
return FALSE;
}
m_wndToolBar.m_cmbZoom.SetFont(&m_font);
m_wndToolBar.m_cmbSelect.SetFont(&m_font);
//////////////////////////////
m_wndToolBar.SetHeight(60);
yhl10000
2005-07-21
打赏
举报
回复
调试一下你的toolbar的元素总共有多少,还有就是create的时候的资源文件。
建议贴上源代码。
yhl10000
2005-07-21
打赏
举报
回复
体会一下这段代码的奥妙。
int index = 0;
RECT rect;
while(m_wndToolBar.GetItemID(index) != ID_TOOL_ZOOM)
index++;
m_wndToolBar.SetButtonInfo(index, ID_TOOL_ZOOM, TBBS_SEPARATOR , 400);
m_wndToolBar.GetItemRect(index, &rect);
rect.top += 2;
rect.bottom += 200;
rect.left= 2;
rect.right= 400;
if(!m_wndToolBar.m_cmbZoom.Create(WS_CHILD|WS_VISIBLE| CBS_AUTOHSCROLL|
CBS_DROPDOWN | CBS_HASSTRINGS, rect,
&m_wndToolBar, ID_TOOL_ZOOM))
{
TRACE0("Failed to create combo-box\n");
return FALSE;
}
m_wndToolBar.m_cmbZoom.AddString("dfadslfk");
m_wndToolBar.m_cmbZoom.AddString("dfadslfk");
m_wndToolBar.m_cmbZoom.AddString("dfadslfk");
m_wndToolBar.m_cmbZoom.AddString("dfadslfk");
m_wndToolBar.m_cmbZoom.AddString("dfadslfk");
m_wndToolBar.m_cmbZoom.SetCurSel(3);
m_wndToolBar.m_cmbZoom.ShowWindow(SW_SHOW);
index= 0;
while(m_wndToolBar.GetItemID(index) != ID_TOOL_SELECT)
index++; //TBBS_SEPARATOR
m_wndToolBar.SetButtonInfo(index, ID_TOOL_SELECT,TBBS_BUTTON , 200);
m_wndToolBar.GetItemRect(index, &rect);
rect.top += 2;
rect.bottom += 200;
rect.left= 402;
rect.right= 600;
m_wndToolBar.SetHeight(60);
if(!m_wndToolBar.m_cmbSelect.Create(WS_CHILD | WS_VISIBLE | WS_VSCROLL|
CBS_DROPDOWNLIST | CBS_SORT , rect,
&m_wndToolBar, ID_TOOL_SELECT))
{
TRACE0("Failed to create combo-box\n");
return FALSE;
}
m_wndToolBar.m_cmbSelect.AddString("fffffffffff");
m_wndToolBar.m_cmbSelect.AddString("fffffffffff");
m_wndToolBar.m_cmbSelect.AddString("fffffffffff");
m_wndToolBar.m_cmbSelect.AddString("fffffffffff");
m_wndToolBar.m_cmbSelect.AddString("fffffffffff");
m_wndToolBar.m_cmbSelect.SetCurSel(3);
m_wndToolBar.m_cmbSelect.ShowWindow(SW_SHOW);
//////////////////////////////
m_wndToolBar.SetHeight(60);
luokun
2005-07-21
打赏
举报
回复
现在可以出来了,不过还有个问题,这两个ComboBox的宽度只能一样,不能设成不同的值。这个问题有办法解决吗?
yhl10000
2005-07-21
打赏
举报
回复
或者给我email,我将程序给你。
yhl10000
2005-07-21
打赏
举报
回复
终于搞定了,哈哈,你仔细看我的源代码,还有在资源文件中,我把按钮宽度设为200。
int index = 0;
RECT rect;
while(m_wndToolBar.GetItemID(index) != ID_TOOL_ZOOM)
index++;
m_wndToolBar.SetButtonInfo(index, ID_TOOL_ZOOM, TBBS_BUTTON , 200);
m_wndToolBar.GetItemRect(index, &rect);
rect.top += 2;
rect.bottom += 200;
rect.left= 2;
rect.right= 200;
if(!m_wndToolBar.m_cmbZoom.Create(WS_CHILD|WS_VISIBLE| CBS_AUTOHSCROLL|
CBS_DROPDOWN | CBS_HASSTRINGS, rect,
&m_wndToolBar, ID_TOOL_ZOOM))
{
TRACE0("Failed to create combo-box\n");
return FALSE;
}
m_wndToolBar.m_cmbZoom.AddString("dfadslfk");
m_wndToolBar.m_cmbZoom.AddString("dfadslfk");
m_wndToolBar.m_cmbZoom.AddString("dfadslfk");
m_wndToolBar.m_cmbZoom.AddString("dfadslfk");
m_wndToolBar.m_cmbZoom.AddString("dfadslfk");
m_wndToolBar.m_cmbZoom.SetCurSel(3);
m_wndToolBar.m_cmbZoom.ShowWindow(SW_SHOW);
index= 0;
while(m_wndToolBar.GetItemID(index) != ID_TOOL_SELECT)
index++; //TBBS_SEPARATOR
m_wndToolBar.SetButtonInfo(index, ID_TOOL_SELECT,TBBS_SEPARATOR , 200);
m_wndToolBar.GetItemRect(index, &rect);
rect.top += 2;
rect.bottom += 200;
rect.left= 202;
rect.right= 400;
m_wndToolBar.SetHeight(60);
if(!m_wndToolBar.m_cmbSelect.Create(WS_CHILD | WS_VISIBLE | WS_VSCROLL|
CBS_DROPDOWNLIST | CBS_SORT , rect,
&m_wndToolBar, ID_TOOL_SELECT))
{
TRACE0("Failed to create combo-box\n");
return FALSE;
}
m_wndToolBar.m_cmbSelect.AddString("fffffffffff");
m_wndToolBar.m_cmbSelect.AddString("fffffffffff");
m_wndToolBar.m_cmbSelect.AddString("fffffffffff");
m_wndToolBar.m_cmbSelect.AddString("fffffffffff");
m_wndToolBar.m_cmbSelect.AddString("fffffffffff");
m_wndToolBar.m_cmbSelect.SetCurSel(3);
m_wndToolBar.m_cmbSelect.ShowWindow(SW_SHOW);
//////////////////////////////
m_wndToolBar.SetHeight(60);
luokun
2005-07-21
打赏
举报
回复
所有的按钮?我想要的工具栏是没有按钮,只有两个ComboBox的效果。也就是把默认的那些新建、打开、复制……都删掉。
yhl10000
2005-07-21
打赏
举报
回复
我没有增加任何按钮。
yhl10000
2005-07-21
打赏
举报
回复
我用你的代码所有的按钮都出来了。
luokun
2005-07-21
打赏
举报
回复
调试了,一切正常。
如果在资源编辑器里,在工具栏上多加一个普通按钮(什么位置都行),那么结果是正确的。
但是如果没有普通按钮,或者在运行时删掉了那个普通按钮,工具栏都会出不来。
yhl10000
2005-07-21
打赏
举报
回复
发现一个bug。
while(m_wndToolBar.GetItemID(index) != ID_TOOL_SELECT)
index++;
这个index没有赋初值0。
程序逻辑中应该赋初值。
如果m_wndToolBar.GetItemID(index) != ID_TOOL_SELECT一直不成立,那么index在上一个index的值(相对ID_TOOL_ZOOM)将会一直增加。
还有你调试了没有。
oyljerry
2005-07-21
打赏
举报
回复
单步调试一下,看哪里有问题,多注意初始化,显示等
luokun
2005-07-21
打赏
举报
回复
m_wndToolBar就是简单的从CToolBar继承,加上了m_cmbZoom和m_cmbSelect这两个成员,除此之外没有作其它任何修改。
MFC框架下,在
ToolBar
中添加
ComboBox
,并且设置
ComboBox
的字体
假设读者已经拥有
一个
ToolBar
,并且在其父类中拥有
一个
m_wnd
ToolBar
的成员来标示这个
toolbar
。如果想在其中添加
一个
ComboBox
,步骤如下。 1. 在该
toolBar
资源中,添加
一个
item,并且给予
一个
ID,我们假设为ID_TOOLS_COMBO 2. 在父类头文件中申明
一个
ComboBox
的成员和
一个
CFont的成员: C
ComboBox
m_tbCB;
也談 在
Toolbar
中插入
ComboBox
Google 一下, 你能輕易的找到 在
Toolbar
中插入
ComboBox
的方法, 大多就是下面的方法BOOL CMainFrame::ToolButton2
ComboBox
(C
ToolBar
&
toolbar
, C
ComboBox
&combo, UINT nID, int nWidth, BOOL bSort){ if (!
toolbar
.GetSafeHwnd())
grid
toolbar
中
Combobox
的问题
TestGrid 继承自 gridpanel,
toolbar
中有两个
combobox
,
一个
添加按钮,
一个
删除按钮, 点击添加按钮时,取得两个
combobox
的内容, 添加到grid中,代码如下: /* * To change this template, choose Tools | Templates * and open the template in the editor. */...
在
ToolBar
中加其他控件
在
ToolBar
中加其他控件。
滞环控制simulink仿真模型
滞环控制simulink仿真模型
界面
15,976
社区成员
115,866
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章