WTL创建 CRichEditCtrl 失败

在学习WTL时 ,m_wndDataViewer.SetFont ( AtlGetStockFont(ANSI_FIXED_FONT) ); 这句话执行失败。

调试发现 CRichEditCtrl    m_wndDataViewer; m_wndDataViewer的HWND为空。即创建失败。

参考http://bbs.csdn.net/topics/270057503贴子发现原因:

/ NOTE:  MSFTEDIT.DLL only registers MSFTEDIT_CLASS.  If an application wants
// to use the following Richedit classes, it needs to load the riched20.dll.
// Otherwise, CreateWindow with RICHEDIT_CLASS would fail.
// This also applies to any dialog that uses RICHEDIT_CLASS, 

使用的时候,要调用一次LoadLibrary来加载相应的dll模块
RichEdit2.3和3.0就是 riched20.dll,类名是"RichEdit20A"或者是"RichEdit20W"
RichEdit4.1是 mstfedit.dll,类名是“RichEdit50W”

搞不懂,为啥一定要自己加载一次过,难道这个不是默认加载进来的?一直都以为这个是包含在user32.dll的
关联模块中被加载上来的。

解决方法:在_tWinMain加入 LoadLibrary(_T("riched20.dll")); 即可

你可能感兴趣的:(WTL)