想多行显示从文本中读取得内容,下面的程序无法实现,求高人给看看。我快疯了。
void CGUETHCUsbView::OnDraw(CDC* pDC)
{
// TODO: add draw code for native data here
for (;LineFlag < NumLine;)
{
pDC->TextOut(0, LineFlag * 20, str);
}
}void CGUETHCUsbView::OnImport()
{
// TODO: Add your command handler code here CString filename;
CStdioFile file; LPCTSTR lpszFilter = "Text Files(*.txt)|*.txt||";
CFileDialog dlg(TRUE,
lpszFilter,
NULL,
OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
lpszFilter,
NULL);
if(dlg.DoModal()==IDOK)
{
filename=dlg.GetPathName();
if(file.Open(filename,CFile::modeRead|CFile::shareDenyNone,NULL)==0)
{
AfxMessageBox("无法打开该文件!",MB_OK,0);
return;
};
while(file.ReadString(str) != FALSE)
{
NumLine++;
Invalidate(true);
UpdateWindow(); }
file.Close();
}
void CGUETHCUsbView::OnDraw(CDC* pDC)
{
// TODO: add draw code for native data here
for (;LineFlag < NumLine;)
{
pDC->TextOut(0, LineFlag * 20, str);
}
}void CGUETHCUsbView::OnImport()
{
// TODO: Add your command handler code here CString filename;
CStdioFile file; LPCTSTR lpszFilter = "Text Files(*.txt)|*.txt||";
CFileDialog dlg(TRUE,
lpszFilter,
NULL,
OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
lpszFilter,
NULL);
if(dlg.DoModal()==IDOK)
{
filename=dlg.GetPathName();
if(file.Open(filename,CFile::modeRead|CFile::shareDenyNone,NULL)==0)
{
AfxMessageBox("无法打开该文件!",MB_OK,0);
return;
};
while(file.ReadString(str) != FALSE)
{
NumLine++;
Invalidate(true);
UpdateWindow(); }
file.Close();
}
解决方案 »
- winpcap在VS2008下做的,编译报找不到数据类型pcap
- 如何让系统主音量“静音”?
- 整个菜单和整个工具条的右边有大片的空白区域,如何在这些空白区域显示一些文字?
- 100分求 API编的exe程序加载资源,怎么能在别人的机器上运行
- DLL中,给定全局变量,怎么跟踪该变量的变化信息?
- delete与delete[]有什么区别
- 关于窗口融合的高难度问题
- 在DLL中,使用了C++ 的类\overload 函数\默认参数的函数等特性后,那么此dll在VB\Delphi中使用会不会有问题呢?
- 需要实时在桌面DC上绘制,但是在绘制前如何刷新前面绘制的残留
- 如果将程序注册成系统程序
- CJ609Libd.dll,CJ609Lib.dll的作用是什么??????
- MFC界面问题
for (;LineFlag < NumLine;)
{
pDC->TextOut(0, LineFlag * 20, str);
LineFlag ++; }
{
pDC->TextOut(0, i* 20, str);
}
{
NumLine++;
Invalidate(true);
UpdateWindow(); }
这里的str一定要放在一个容器中的,你这样的写法,只是显示最后一行的字符
{//点击“打开文本文件”消息响应函数
CClientDC dc(this);
CFileDialog fileDlg(TRUE);
fileDlg.m_ofn.lpstrTitle="我的文件打开对话框";
fileDlg.m_ofn.lpstrFilter="Text Files(*.txt)\0*.txt\0All Files(*.*)\0*.*\0\0";
CRect Rect;
GetClientRect(&Rect);
if(IDOK==fileDlg.DoModal())
{
CFile file(fileDlg.GetFileName(),CFile::modeRead); DWORD dwFileLen;
dwFileLen=file.GetLength();
pBuf=new char[dwFileLen+1];
pBuf[dwFileLen]=0;
file.Read(pBuf,dwFileLen);
file.Close();
InvalidateRect(NULL,TRUE);
}
}然后是重绘函数中的代码:CRect Rect;
GetClientRect(&Rect);
pDC->SelectObject(m_font);
pDC->DrawText(pBuf,Rect,DT_WORDBREAK);