社区
界面
帖子详情
如何做一个只有2个combobox的toolbar?
luokun
2005-07-20 03:16:09
在工具条上添加2个combobox,但工具条上只有这2个 combobox 没有其它按钮
在运行的时候工具条无法显示。
添加 combobox 的方法是参照这里写的
http://www.vckbase.com/document/viewdoc/?id=469
有没有办法显示出来,或者用别的bar控件。
...全文
140
17
打赏
收藏
如何做一个只有2个combobox的toolbar?
在工具条上添加2个combobox,但工具条上只有这2个 combobox 没有其它按钮 在运行的时候工具条无法显示。 添加 combobox 的方法是参照这里写的 http://www.vckbase.com/document/viewdoc/?id=469 有没有办法显示出来,或者用别的bar控件。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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这两个成员,除此之外没有作其它任何修改。
toolbar
,
combobox
within rebar.rar
这个压缩包文件"
toolbar
,
combobox
within rebar.rar"显然包含了
一个
示例项目,展示了如何在`rebar`控件中嵌入`
toolbar
`和`
combobox
`,并且利用Windows Raw API来实现这一功能。让我们深入探讨这些概念及其应用。 ...
精彩编程与编程技巧-放
一个
Combo到
Toolbar
中...
2. **创建
一个
工具栏(
Toolbar
)**:接下来,在窗体上添加
一个
工具栏控件,该控件用于承载组合框及其他控件。 - **控件名称**:`
Toolbar
1` 3. **准备按钮(Button)**:在工具栏上添加按钮控件,并将其样式设置...
Blend 修改 WPFr
ComboBox
的背景色、字体颜色和下拉背景色
然后,右键点击并选择“Edit Additional Templates” -> “Edit a Copy”,创建
一个
下拉列表的副本以便进行修改。 在弹出的对话框中,给新样式命名,比如"Custom
ComboBox
Template",并点击“OK”。现在,你会看到...
ToolBar
上添加滚动条和下拉框
下拉框通常用于提供
一个
可选的列表,用户可以从这些选项中选择。在`
ToolBar
`上添加下拉框可以提供一种更灵活的方式来选择特定的操作或参数。例如,在`Java`中,`J
ComboBox
`可以添加到`J
ToolBar
`,并且可以设置其模型...
visual c++ vc在工具栏上添加下拉框
ComboBox
.zip
在Visual C++ (VC++) 开发环境中,创建
一个
带有下拉框(
ComboBox
)的工具栏是常见的需求,特别是在设计用户友好的图形用户界面时。
ComboBox
控件结合了文本输入框和下拉列表的功能,允许用户从预设的选项中选择或者...
界面
15,980
社区成员
115,867
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章