Igo*_*gor 6 dll version richedit
全部,
是否可以获得程序使用的 RichEdit 控件的版本?
| Version | Class name | Library | Shipped with | New features
|------------|---------------|--------------|-----------------|
| 1.0 | "RICHEDIT" | Riched32.dll | Windows 95 |
| 2.0 | "RichEdit20W" | Riched20.dll | Windows 98 | ITextDocument
| 3.0 | "RichEdit20W" | Riched20.dll | Windows 2000 | ITextDocument2
| 3.1 | "RichEdit20W" | Riched20.dll | Server 2003 |
| 4.1 | "RICHEDIT50" | Msftedit.dll | Windows XP SP1 | tomApplyTmp
| 7.5 | "RICHEDIT50" | Msftedit.dll | Windows 8 | ITextDocument2 (new), ITextDocument2Old, Spell checking, Ink support, Office Math
| 8.5 | "RICHEDIT50" | Msftedit.dll | Windows 10 | LocaleName, more image formats
Run Code Online (Sandbox Code Playgroud)
我知道我可以只拥有一些变量,并在Msftedit.dll库是否加载时适当地分配它。但是,如果我执行 load RichEd20.dll,我可以获得 RichEdit 2 或 RichEdit 3 实现。他们是完全不同的。后者添加了很多东西。
如果我确实加载了Msftedit.dll7.5,则有一些功能在早期版本中不可用(例如自动拼写检查)。
甚至有可能同一进程可以加载所有三个 DLL,甚至可以在同一进程中使用所有三个版本的 RichEdit:
"RICHEDIT"→ 1.0"RichEdit20W"→ 2.0、3.0"RICHEDIT50"→ 4.1、7.5、8.5给定一个 RichEdit 控件(例如 WinForms RichTextBox、 WPF RichTextBox、 WinRT RichEditBox、 VCL TRichEdit),有没有办法确定 RichEdit 控件的版本?
或者也许我可以通过可用的 Windows 版本以某种方式区分它们?
如果使用C++,您可能会发现以下代码片段对于读出类名很有用:
TCHAR className[MAX_PATH];
GetClassName(GetRichEditCtrl().GetSafeHwnd(), className, _countof(className));
Run Code Online (Sandbox Code Playgroud)
GetRichEditCtrl()是另一个控件上的功能,您可能需要用任何给您提供hwnd控件的东西来替换。
另一种方法是使用像spy++这样的工具来检查类名。
| 归档时间: |
|
| 查看次数: |
1943 次 |
| 最近记录: |