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(); //

}

源代码下载

  • 0
    点赞
  • 0
    收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:深蓝海洋 设计师:CSDN官方博客 返回首页
评论
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值