单文挡\5步选window explore\6步选CRichEditView
在工具栏添加保存(ID_SAVE)和打开(ID_OPEN),然后驱动相应函数OnSave\OnOpen
怎么能够保存,打开确是空白?
添加代码如下:static DWORD CALLBACK MyStreamOutCallback(DWORD dwCookie, LPBYTE pbBuff, LONG cb, LONG *pcb)
{
CFile* pFile = (CFile*) dwCookie; pFile->Write(pbBuff, cb);
*pcb = cb; return 0;
}static DWORD CALLBACK MyStreamInCallback(DWORD dwCookie, LPBYTE pbBuff, LONG cb, LONG *pcb)
{
CFile* pFile = (CFile*) dwCookie; pFile->Read(pbBuff, cb);
*pcb = cb; return 0;
}void CTestEditView::OnSave()
{
CRichEditCtrl & pmyRichEditCtrl = GetRichEditCtrl();
CFile cFile(TEXT("my.txt"), CFile::modeCreate|CFile::modeReadWrite);
EDITSTREAM es;
es.dwCookie = (DWORD) &cFile;
es.pfnCallback = MyStreamOutCallback;
pmyRichEditCtrl.StreamOut(SF_TEXTIZED, es);
}void CTestEditView::OnOpen()
{
CRichEditCtrl & pmyRichEditCtrl = GetRichEditCtrl();
CFile cFile(TEXT("my.txt"), CFile::modeReadWrite);
EDITSTREAM es;
es.dwCookie = (DWORD) &cFile;
es.pfnCallback = MyStreamInCallback;
pmyRichEditCtrl.StreamIn(SF_TEXTIZED, es);
}
在工具栏添加保存(ID_SAVE)和打开(ID_OPEN),然后驱动相应函数OnSave\OnOpen
怎么能够保存,打开确是空白?
添加代码如下:static DWORD CALLBACK MyStreamOutCallback(DWORD dwCookie, LPBYTE pbBuff, LONG cb, LONG *pcb)
{
CFile* pFile = (CFile*) dwCookie; pFile->Write(pbBuff, cb);
*pcb = cb; return 0;
}static DWORD CALLBACK MyStreamInCallback(DWORD dwCookie, LPBYTE pbBuff, LONG cb, LONG *pcb)
{
CFile* pFile = (CFile*) dwCookie; pFile->Read(pbBuff, cb);
*pcb = cb; return 0;
}void CTestEditView::OnSave()
{
CRichEditCtrl & pmyRichEditCtrl = GetRichEditCtrl();
CFile cFile(TEXT("my.txt"), CFile::modeCreate|CFile::modeReadWrite);
EDITSTREAM es;
es.dwCookie = (DWORD) &cFile;
es.pfnCallback = MyStreamOutCallback;
pmyRichEditCtrl.StreamOut(SF_TEXTIZED, es);
}void CTestEditView::OnOpen()
{
CRichEditCtrl & pmyRichEditCtrl = GetRichEditCtrl();
CFile cFile(TEXT("my.txt"), CFile::modeReadWrite);
EDITSTREAM es;
es.dwCookie = (DWORD) &cFile;
es.pfnCallback = MyStreamInCallback;
pmyRichEditCtrl.StreamIn(SF_TEXTIZED, es);
}
解决方案 »
- 为什么VS2010里没有WM_INITDIALOG消息?
- MFC 读取文件
- 要让浮动工具停在右边怎么办?
- 关于全局钩子。全局钩子要放在dll中,我做了之后怎么没有用?谁给我讲讲,键盘的就可以了。
- 如何屏蔽CRichEditCtrl的拷贝,粘贴,剪切事件?
- 麻烦高手给我说VC++和标准C中不一致的地方
- 求教高手啊!!!!
- 高手请进
- 救急!!!!!!!!!!!!!!!!
- 怎么才能知道有新进程启动了(除了Hook CreateProcess之外)
- 如何将Tree control上的item内容drag & drop到Edit control中去
- vc6.0下如何在工程中插入richedit2.0控件?
另外:
static DWORD CALLBACK MyStreamInCallback(DWORD dwCookie, LPBYTE pbBuff, LONG cb, LONG *pcb)
中的"LONG cb"是从哪来的?