richedit php,如何在CRichEditView中使用RichEditControl 4.1

Windows RichEdit控件的最新版本是4.1。然而,MFC框架中仍旧使用老版本的控件。例如MFC6.0使用的是RichEdit控件版本1,相当落后,甚至新的Visual Studio 2005-2010中附带的MFC也仅适用RichEdit控件 版本2或版本3。

如何解决这个问题?

为了在MFC类CRichEditView中使用RichEdit控件4.1 ,并享受其新的功能,我们可以做以下步骤:

第1步

在MFC应用程序类(从CWinApp派生)加载的MSFTEDIT.DLL的库模块,其中包含RichEdit控件4.1。

BOOL CRichEdit41App::InitInstance()

{

// Load RichEdit 4.1 library

HMODULE hRE41Module = ::LoadLibrary(_T("MSFTEDIT.DLL"));

if(NULL == hRE41Module)

{

AfxMessageBox(_T("RichEdit 4.1 library could not be loaded"));

return FALSE;

}

// ...

}

第2步

在MFC视图类(从CRichEditView的派生)的构造函数中,为4.1 RichEdit设置窗口类名为“RICHEDIT50W”。

// Note: MSFTEDIT_CLASS is not defined in MFC6.0 and older

#ifndef MSFTEDIT_CLASS

#define MSFTEDIT_CLASS L"RICHEDIT50W";

#endif

CRichEdit41View::CRichEdit41View()

{

m_strClass = MSFTEDIT_CLASS;

}

第3步

在WM_DESTROY消息处理函数中,删除基类的方法调用。

注:这一步在MFC 6.0及更老版本中是必须的。

void CRichEdit41View::OnDestroy()

{

// CRichEditView::OnDestroy(); //

COleClientItem* pActiveItem = GetDocument()->GetInPlaceActiveItem(this);

if (pActiveItem != NULL && pActiveItem->GetActiveView() == this)

{

pActiveItem->Deactivate();

ASSERT(GetDocument()->GetInPlaceActiveItem(this) == NULL);

}

CRichEditView::OnDestroy(); //

}

源代码下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值