在用MFC编一个计算窗口,其中打算加入个组合框,做个下拉菜单,能够选择不同材料。结果弹出来下图

这到底是什么情况,运行后点击下拉按钮就弹出来这个东西... 这到底是什么情况,运行后点击下拉按钮就弹出来这个东西 展开
 我来答
阔海的账户
2012-05-31 · TA获得超过214个赞
知道小有建树答主
回答量:161
采纳率:0%
帮助的人:241万
展开全部
我觉得你的组合框响应方式有些问题。
void CXxxDlg::OnEditchangeCombo1() ,这个函数是响应组合框的编辑内容发生改变时响应的。而在第一次响应时,组合框是没有选定内容的,换句话说就是,m_cb.GetCurSel() 的值是-1,这样 m_cb.GetLBText 肯定会发生异常。从你发来的图片看,winctrl1.cpp的第184行,应该处于CComboBox 的成员函数实现部分,因为不清楚你的vc版本,所以不清楚具体是哪个成员函数的问题。
从你的需求来看,为解决这个问题,应该响应组合框选择改变这个消息,而不应该响应组合框编辑内容改变的消息。详细说,就是在ClassWizerd中,选择对话框的组合框控件,在右边对话框中选择CBN_SELCHANGE,双击,生成函数:void CXxxDlg::OnSelchangeCombo1() ,在这个函数中,添加OnEditchangeCombo1() 的代码,再将OnEditchangeCombo1() 函数变成空函数(即不响应组合框编辑内容改变)。你可以试一下。
更多追问追答
追问
谢谢了,我还有个问题,当我选定菜单中的某一项后,如何给其中的变量赋值,和我之前边的其他代码中的变量关联?我是初学C++,术语可能用的不准,希望你能明白……
追答
是选定组合框的某一项吗?组合框选定的内容已经从m_cb.GetLBText(m_cb.GetCurSel(),msg)读出来了。菜单是要通过ClassWizerd来创建响应的消息响应函数的,和变量没有直接的关联。不太明白你的意思,可以再说清楚一些?
weiyinwu
2012-05-31 · TA获得超过1540个赞
知道小有建树答主
回答量:1057
采纳率:50%
帮助的人:1145万
展开全部
贴代码,不要贴结果。点你点下拉菜单触发消息的代处理代码。
追问
BOOL CXxxDlg::OnInitDialog()
{
CDialog::OnInitDialog();
..............
m_cb.AddString("Ti-6Al-4V");
m_cb.AddString("D6AC");
m_cb.AddString("Ti-13Cr-3Al");
………………
void CXxxDlg::OnEditchangeCombo1()
{
// TODO: Add your control notification handler code here
CString msg;
m_cb.GetLBText(m_cb.GetCurSel(),msg);
AfxMessageBox(msg);
追答
嗯。代码贴出来了,问题就解决了。同意是消息响应选错的问题。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
函子炜8R
2012-05-31
知道答主
回答量:30
采纳率:0%
帮助的人:19.4万
展开全部
这是崩了,如果有链表还是看看链表是不是指的有问题
追问
额,我是菜鸟,能不能说的详细点
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式