如何在MFC单文档中动态向ListBox控件插入文本
已知在名为“Test”的MFC单文档工程中,有三个文件://CIOServer.hclassCIOServer{boolStartListen();};//COutput...
已知在名为“Test”的MFC单文档工程中,有三个文件:
//CIOServer.h
class CIOServer
{
bool StartListen();
};
//COutputView.h
class COutputView //窗体对应的视图类
{
CListBox m_listbox; //控件ID为IDC_LIST
};
//MailFrm.cpp
#include "IOServer.h"
#include "OutputView.h"
void CMainFrame::OnListen()
{
CIOServer io;
if (io.StartListen())
{
//m_listbox.InsertString(0,"sss"); //错误
//(CListBox *)GetDlgItem(IDC_LIST)->InsertString(0, "sss"); //错误
//COutputView *p = (COutputView*)GetDlgItem(IDC_LIST);
//p->m_listbox.InsertString(0,"sss"); 错误
//GetDlgItem(IDC_LIST_OUTPUT))->InsertString(0, "sss"); //错误
}
}
怎样在OnListen函数内的if条件为真时,向View视图上的ListBox控件插入一行文本 展开
//CIOServer.h
class CIOServer
{
bool StartListen();
};
//COutputView.h
class COutputView //窗体对应的视图类
{
CListBox m_listbox; //控件ID为IDC_LIST
};
//MailFrm.cpp
#include "IOServer.h"
#include "OutputView.h"
void CMainFrame::OnListen()
{
CIOServer io;
if (io.StartListen())
{
//m_listbox.InsertString(0,"sss"); //错误
//(CListBox *)GetDlgItem(IDC_LIST)->InsertString(0, "sss"); //错误
//COutputView *p = (COutputView*)GetDlgItem(IDC_LIST);
//p->m_listbox.InsertString(0,"sss"); 错误
//GetDlgItem(IDC_LIST_OUTPUT))->InsertString(0, "sss"); //错误
}
}
怎样在OnListen函数内的if条件为真时,向View视图上的ListBox控件插入一行文本 展开
2个回答
展开全部
你首先需要在CMainFrame的OnListen中,获取View类指针,然后通过View指针操作列表。
注意在mainframe.cpp头部,其它包含下方加上view类头文件包含#include
通过下面类似代码获取view指针
通过view指针,获取view类成员变量m_listbox
对view类进行数据更新(如果是formview或者listview,用UpdateData函数)
CMyView *pView = (CMyView*)GetActiveView();
pView->m_listbox->InsertString(...);
推荐于2017-09-17 · 知道合伙人互联网行家
关注
展开全部
对Listbox进行操作:
Int listbox.AddString ( LPCTSTR Str) :对listbox的首行添加一个str的文本行,即此时nIndex为0;
Int listbox.DeleteString (uint nIndex) :删除listbox中第nIndex行的文本行,注意nIndex是从0起始的;
int listbox.InsertString (uint xIndex, LPCTSTR Str):在listbox中第nIndex行插入一个str的文本行;
Int listbox.GetCount ( ):获取listbox的行的总数目;
Int listbox.GetCurSel ( ):得到listbox选中的文本行的行数。
Void listbox.ResetContent ( ):清除listbox中的所有数据;
Int listbox.GetCurCount ( ):获取listbox被选中的行的数目;
Int listbox.FindString ( int nstart , LPCTSTR Str ):从第nstart行开始起进行查找,查找Str的文本行;
Int listbox.SelectString ( int nstart, LPCTSTR Str ) :从第nstart行开始,选择包含Str字符串的那一行;
对Listbox中某一行进行双击操作,要产生一个响应函数的步骤:
在
BEGIN_MESSAGE_MAP()
END_MESSAGE_MAP()
之间添加响应函数的消息映射,如函数名为C**Dlg::OnLbnDblClk,添加下面代码
ON_LBN_DBLCLK(IDC_LIST1,&C**Dlg::OnLbnDblClk)
//IDC_LIST1为listbox控件的ID
然后在C**Dlg.h中添加函数OnLbnDblClk()的声明
最后在C**Dlg::OnLbnDblClk()函数中添加实现代码即可
Int listbox.AddString ( LPCTSTR Str) :对listbox的首行添加一个str的文本行,即此时nIndex为0;
Int listbox.DeleteString (uint nIndex) :删除listbox中第nIndex行的文本行,注意nIndex是从0起始的;
int listbox.InsertString (uint xIndex, LPCTSTR Str):在listbox中第nIndex行插入一个str的文本行;
Int listbox.GetCount ( ):获取listbox的行的总数目;
Int listbox.GetCurSel ( ):得到listbox选中的文本行的行数。
Void listbox.ResetContent ( ):清除listbox中的所有数据;
Int listbox.GetCurCount ( ):获取listbox被选中的行的数目;
Int listbox.FindString ( int nstart , LPCTSTR Str ):从第nstart行开始起进行查找,查找Str的文本行;
Int listbox.SelectString ( int nstart, LPCTSTR Str ) :从第nstart行开始,选择包含Str字符串的那一行;
对Listbox中某一行进行双击操作,要产生一个响应函数的步骤:
在
BEGIN_MESSAGE_MAP()
END_MESSAGE_MAP()
之间添加响应函数的消息映射,如函数名为C**Dlg::OnLbnDblClk,添加下面代码
ON_LBN_DBLCLK(IDC_LIST1,&C**Dlg::OnLbnDblClk)
//IDC_LIST1为listbox控件的ID
然后在C**Dlg.h中添加函数OnLbnDblClk()的声明
最后在C**Dlg::OnLbnDblClk()函数中添加实现代码即可
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询