预先的打算是这样的:
1.建立MFC单文本程序
2.从.txt文件中读取文本文件到string对象,然后保存于容器
3.将读取到的文本文件按顺序显示到主界面
4.用户可以使用鼠标点击的方式选中一行或多行,只点击选择,不需要其他操作
5.获取用户选择的行,从容器中删除这些行
6.将处理后的文本文件重新写回到.txt文件中
现在的问题:
1.读取文件,保存文件已经完成
2.使用CListBox的方式显示读取到的文件
3.为了处理窗口重绘的问题,将数据显示的步骤写在了视类的OnDraw函数中,但是会出现Debug错误
以下为源码,请各位帮忙看下存在的问题,或者有其他比较好的解决方案的,也请帮忙提出来,万分感谢!
注:
m_pListBox定义为视类的成员,在构造函数中进行初始化:
CPlatFormView::CPlatFormView()
{
// TODO: 在此处添加构造代码
m_pListBox = new CListBox();
}
void CPlatFormView::OnDraw(CDC* pDC)
{
CPlatFormDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
// TODO: 在此处为本机数据添加绘制代码
if (!m_vecBuffer.empty())
{
//按行输出容器内数据到主界面
CRect rect;
GetClientRect(&rect);
m_pListBox->Create(LBS_MULTIPLESEL | WS_VSCROLL | WS_HSCROLL, rect, this, IDC_AWCLEAR_LISTBOX);
m_pListBox->InitStorage(400, 10230);
m_pListBox->ShowWindow(SW_SHOWNORMAL);
/*this->SetHorizontalExtent(1000);*/
vector<DATA>::iterator beg = m_vecBuffer.begin();
while (beg != m_vecBuffer.end())
{
string strUTF8 = beg->sData;
string strAnsi = CCharacterChange::UTF8_To_STRING(strUTF8);
wstring wsUnicode = CCharacterChange::AnsiToUnicode(strAnsi);
m_pListBox->AddString(wsUnicode.c_str());
beg++;
}
}
}
1.建立MFC单文本程序
2.从.txt文件中读取文本文件到string对象,然后保存于容器
3.将读取到的文本文件按顺序显示到主界面
4.用户可以使用鼠标点击的方式选中一行或多行,只点击选择,不需要其他操作
5.获取用户选择的行,从容器中删除这些行
6.将处理后的文本文件重新写回到.txt文件中
现在的问题:
1.读取文件,保存文件已经完成
2.使用CListBox的方式显示读取到的文件
3.为了处理窗口重绘的问题,将数据显示的步骤写在了视类的OnDraw函数中,但是会出现Debug错误
以下为源码,请各位帮忙看下存在的问题,或者有其他比较好的解决方案的,也请帮忙提出来,万分感谢!
注:
m_pListBox定义为视类的成员,在构造函数中进行初始化:
CPlatFormView::CPlatFormView()
{
// TODO: 在此处添加构造代码
m_pListBox = new CListBox();
}
void CPlatFormView::OnDraw(CDC* pDC)
{
CPlatFormDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
// TODO: 在此处为本机数据添加绘制代码
if (!m_vecBuffer.empty())
{
//按行输出容器内数据到主界面
CRect rect;
GetClientRect(&rect);
m_pListBox->Create(LBS_MULTIPLESEL | WS_VSCROLL | WS_HSCROLL, rect, this, IDC_AWCLEAR_LISTBOX);
m_pListBox->InitStorage(400, 10230);
m_pListBox->ShowWindow(SW_SHOWNORMAL);
/*this->SetHorizontalExtent(1000);*/
vector<DATA>::iterator beg = m_vecBuffer.begin();
while (beg != m_vecBuffer.end())
{
string strUTF8 = beg->sData;
string strAnsi = CCharacterChange::UTF8_To_STRING(strUTF8);
wstring wsUnicode = CCharacterChange::AnsiToUnicode(strAnsi);
m_pListBox->AddString(wsUnicode.c_str());
beg++;
}
}
}
