首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要帮助解决CListBox中的问题

需要帮助解决CListBox中的问题
EN

Stack Overflow用户
提问于 2022-06-20 23:39:33
回答 2查看 88关注 0票数 1

我仍然在学习C++ MFC,我的问题是:我如何才能得到CurSel的2列表框作为数字,然后添加它们并打印结果?结果显示了一个奇怪的659998896数字而不是2。我在这里做错了什么?

代码语言:javascript
复制
BOOL CEngravingCalculatorDlg::OnInitDialog(){
    CListBox* emplistbox1 = static_cast<CListBox*>(GetDlgItem(IDC_LIST1));
    emplistbox1->AddString(L"1");
    emplistbox1->SetCurSel(0);

    CListBox* emplistbox3 = static_cast<CListBox*>(GetDlgItem(IDC_LIST3));
    emplistbox3->AddString(L"1");
    emplistbox3->SetCurSel(0);
    }

void CEngravingCalculatorDlg::OnBnClickedButton1()
{
   CListBox* emplistbox1 = static_cast<CListBox*>(GetDlgItem(IDC_LIST1));
   CListBox* emplistbox3 = static_cast<CListBox*>(GetDlgItem(IDC_LIST3));
   int num1 = emplistbox1->GetCurSel();
   int num2 = emplistbox3->GetCurSel();
   int equal = num1 + num2;
   CString str;
   str.Format(_T("%d", equal));
    GetDlgItem(IDC_Display)->SetWindowTextW(str);
}
EN

回答 2

Stack Overflow用户

发布于 2022-06-21 01:30:42

_T是一个只接受单个参数的宏。因为一个错误,你给了它两个参数。第二个问题被忽视并有效地丢失了。这意味着您的format调用只得到一个参数,并且您正在看到未定义的行为。用以下方法修复它:

代码语言:javascript
复制
str.Format(_T("%d"), equal);

这意味着你的错误与列表箱完全无关。

票数 3
EN

Stack Overflow用户

发布于 2022-06-21 01:53:15

看这个片段。GetCurSel()用于获取光标位置,而不是内容。使用GetText()获取列表框的内容。

代码语言:javascript
复制
void CEngravingCalculatorDlg::OnBnClickedButton1()
{
    CListBox* emplistbox1 = static_cast<CListBox*>(GetDlgItem(IDC_LIST1));
    CListBox* emplistbox3 = static_cast<CListBox*>(GetDlgItem(IDC_LIST3));
    int num1 = emplistbox1->GetCurSel();
    int num2 = emplistbox3->GetCurSel();

    CString ItemSelected1, ItemSelected2;
    if (num1 != LB_ERR && num2 != LB_ERR)   {
        emplistbox1->GetText(num1, ItemSelected1);      
        emplistbox3->GetText(num2, ItemSelected2);      

        int equal = atoi(CStringA(ItemSelected1).GetString()) + atoi(CStringA(ItemSelected2).GetString());
        CString str;
        str.Format(L"%d", equal);
        SetDlgItemText(IDC_Display, str);
    }

}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72693940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档