壹念至贱
2019-03-19 09:09
采纳率: 50%
浏览 435

VS2017 MFC 如何调用其他类的ListCtrl信息?

因工作需要自学MFC,目前我在A类里建了一个ListCtrl控件,创建控件变量为m_ListCtrl,然后我需要在B类里获取这个控件的信息。第一次我想在B类里创建个实例对象,但是取不到信息。第二次想将m_ListCtrl这个变量作为参数传到B类,但是提示:“无法引用 函数 "CListCtrl::CListCtrl(const CListCtrl &)" (已隐式声明) -- 它是已删除的函数”。第三次我想在A类将控件里的内容放到CStringList里,但是返回值还是提示已被删除。看网上说用什么引用,但是没太搞懂。所以写了这段

CStringList* CStuInfoManag::GetListInfo()
{

    int iColumnNum, iRowCount, i, j;
    CString strText;
    CStringList cList;
    cList.RemoveAll();
    cList.
    iColumnNum = m_ListCtrl.GetHeaderCtrl()->GetItemCount();
    iRowCount = m_ListCtrl.GetItemCount();

    for (i = 0; i < iColumnNum; i++)
    {
        for (j = 0; j < iRowCount; j++) 
        {
            strText = m_ListCtrl.GetItemText(j,i);
            cList.AddTail(strText);
        }
    }
    return &cList;
}

这样提示错误为:class "CStringList" 没有成员 "iColumnNum"。
以上是我的尝试方法,我该如何在B类里取得A类ListCtrl的信息?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • 白色一大坨 2019-03-19 15:27
    已采纳

    看了题主代码,实际上就是个值域问题,你在Excel类里面建的是临时变量,根本不是你操作界面的类对象性,所以list肯定是空的。

    点赞 评论
  • 窝米逗佛~ 2019-03-19 10:31

    不太弄mfc , 只提供给你个思路嘛,

    1. 采用 在b 类中 A a = new A 然后 a->m_listctrl;
    2. m_listctrl 设为 public 然后 b继承 A ;
    看看能行不 , 不行当我没说

    点赞 评论

相关推荐 更多相似问题