在视图类中为文档创建一个新的剪切板类型。拥有这种剪贴板类型的文档可以粘贴到该剪贴板,但其他类型的文档不行。创建自己的自定义格式,要遵循在注册任何自定义剪贴板格式时,使用相同的过程;将格式名称传递给RegisterDlipboardFormat函数,然后使用其返回值作为格式表示符,具体方法是:
1.
在视图类的声明文档中声明一个静态的自定义剪贴板类型:
Static CLIPFORMAT m_cfDraw;//自定义剪贴板格式
2.
在视图类实现文档中注册自定义剪贴板格式:
CLIPFORMAT CvisDrawView::m_cfDraw = (CLIPFORMAT)
::RegisterClipboardFormat(_T(“VISDRAW”));
RegisterClipboardFormat是Win32 API函数,它注册一个新的剪贴板格式,此后这个格式可作为有效的剪贴板格式。RegisterClipboardFormat的原型是:
UINT RegisterClipboardFormat( LPCTRSTR lpszFormat //新格式名称);
如果注册格式已经存在,将返回已经存在格式的值而不是注册新的格式。这样做的好处是可以在多个应用程序中使用同一种格式来复制和粘贴数据。
void
CHookupDrawView::OnEditCopy()
{
// TODO:
在此添加命令处理程序代码
ASSERT_VALID(this);
ASSERT(m_cfDraw != NULL);
//
创建一个共享文件并把它与
CArchive
相关联
CSharedFile file;
CArchive ar(&file, CArchive::store);//CArchive::store
指存储数据到
file