我在Appwizard生成单文档工程中继承了CEditView类,可是能打开的文件太小,(当文件太大时,弹出了messagebox “文件太大,无法打开”)
而改成CRichEditView太麻烦(需要改动太多),不知各位有没有什么方法?
或者象windows那样,使得当用记事本打不开,调用写字板,怎样调写字板?(具体一些:))
而改成CRichEditView太麻烦(需要改动太多),不知各位有没有什么方法?
或者象windows那样,使得当用记事本打不开,调用写字板,怎样调写字板?(具体一些:))
解决方案 »
- 成员函数调用问题
- 怎么样能在win7下实现NDIS中间层网络驱动的动态加载?
- 为什么vs2008编译出来的release版程序,ida pro还提示有debug信息?
- 关闭包含DataGrid控件的窗口时出现异常
- 散分了!
- EASY问题 : CStdioFile打开文件跳开第一行往下取每行内容(代码见内容)~~
- VB写的ActiveDll中定义的结构,如何传递给VC?
- 可以在TOOLBAR上面添加与默认宽度不同的自定义宽度的BUTTON吗?
- 如何获得ComboboxEX的当前所选的项?
- 求助:Teechart图表中的AddXY函数的执行时间是多少?
- 请教“不良嗜好”的准确定义
- 服务器如何实时获得服务器与客户机之间的网络带宽?
void CYourDoc::Serialize(CArchive& ar)
{
// CEditView contains an edit control which handles all serialization
((CEditView*)m_viewList.GetHead())->SerializeRaw(ar);
}在那句话前面加上
CFile* fp = ar.GetFile();
然后通过fp得到文件大小,如果太大,就
WinExec(
LPCSTR lpCmdLine, // address of command line 这里是写字板的文件名
UINT uCmdShow // window style for new application
);
否则调用原来的 ((CEditView*)m_viewList.GetHead())->SerializeRaw(ar);
{
return;
}
CFile myFile;if(!myFile.Open(Dlg.GetPathName(), CFile::modeRead | CFile::typeBinary))
{
AfxMessageBox("文件不存在!",MB_OK|MB_ICONERROR);
return;
}strFullName=Dlg.GetPathName();
strDestName=Dlg.GetFileName();
struct _stati64 buf;
int result = _stati64(strFullName, &buf );
long mgbytes=buf.st_size/(1024*1024);
复制一个wordpad.exe (C:\Program Files\Windows NT\Accessories\wordpad.exe) 到你的应用程序下面----这里只是简单的教你用写字板.
如果不想这么做,需要解决写字板的路径问题,它不像记事本那样在系统目录下面.WinExec("wordpad.exe c:\\test.txt ",SW_SHOW);
如果要打开大文件,还是用顶楼的方法比较好。