请教怎么优化单文档显示大数据显示方式

请问如何优化单文档显示大数据显示方式。
基于单文档模式做了一个监控串口打印的工具,现在采用CString 类型保存所有接受到的数据,长时间监控后(如最小化后)会出现阻塞的情况。
我现在主要有问题没想通:
1.如果不用CString 来保存所有接受到的数据,那么在文档翻页就无法显示之前的打印信息
2.现在文档中显示信息的方式采用SetWindowText函数来实现,也就是每次显示都把所有信息都重新打印一次,效率太低,猜测这也是造成最小化后阻塞的原因。



请问有什么好的解决方案。
------解决思路----------------------
楼主干脆用FileMapping吧:
// 创建文件句柄
HANDLE hFile = ::CreateFile(lpszFileName, GENERIC_READ, NULL, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
// 创建文件映射
HANDLE hMap = ::CreateFileMapping(hFile, NULL, PAGE_READONLY 
------解决思路----------------------
 SEC_COMMIT, NULL, NULL, NULL);
// 读取映射中的内存
LPVOID lpBuffer = ::MapViewOfFile(hMap, FILE_MAP_READ, NULL, NULL, NULL);

// 好了文件的内存已经获取了,你可以随意处理了

// 释放映射内存
::UnmapViewOfFile(lpBuffer);
// 关闭文件映射
::CloseHandle(hMap);
// close file handle
::CloseHandle(hFile);