IntroductionIn一些应用程序,用户可以选择如何显示某些字符。例如,在文本编辑器中,通常有选项来显示空白(空格和制表符)。最近当我有这个需求,我想使用微软的字符映射允许用户选择显示字符。不幸的是,除非你愿意使用剪贴板,没有办法无缝集成字符映射到应用程序。这是XCharMap,实现字符的映射作为一个方便的对话框,你可以定制,以满足您的需求。 XCharMap对话框 ,,,,,,,选择字体的XCharMap对话框显示256个字符。对话框标题的字符代码下的光标显示在十六进制,八进制,十进制。以下字符网格是可选的UI元素,您可以删除从显示通过调用XCharMap api。当用户左击(或右击)一个字符,它显示在左击/右键单击框。最后一个字符是左击可能复制字符复制编辑框点击选择。点击将转移编辑框的内容复制到剪贴板。 删除字符复制UI元素,您可以调用 CXCharMap: EnableCharsToCopy(假)。 删除左击/右键单击UI元素,您可以调用 CXCharMap: EnableClicks(假)。 当两组UI元素移除,XCharMap对话框将被缩小到适合字符网格。删除字符代码显示在对话框的标题,您可以调用 CXCharMap: EnableCharacterCode(假)。 这是代码从XCharMapTestDlg.cpp显示如何调用CXCharMap和禁用所有可选的UI元素:隐藏,复制Code
void CXCharMapTestDlg::OnTest() { CXCharMap dlg; dlg.EnableCharsToCopy(FALSE); dlg.EnableClicks(FALSE); dlg.EnableCharacterCode(FALSE); if (dlg.DoModal() == IDOK) { // process return here TRACE(_T("m_nLeftClickRow=%d "), dlg.m_nLeftClickRow); TRACE(_T("m_nLeftClickCol=%d "), dlg.m_nLeftClickCol); TRACE(_T("m_nRightClickRow=%d "), dlg.m_nRightClickRow); TRACE(_T("m_nRightClickCol=%d "), dlg.m_nRightClickCol); } }
如何使用 集成IsOpenType()到你的应用程序,您首先需要以下文件添加到您的项目: Clipboard.cpp Clipboard.h GetFontFile.cpp GetFontFile.h IsOpenType.cpp IsOpenType.h XCharGrid.cpp XCharGrid.h XCharMap.cpp XCharMap.h XFontPreviewCombo.cpp XFontPreviewCombo.h 接下来,包括头文件XCharMap.h在适当的项目文件。现在,您可以开始使用CXCharMap。 LimitationsCurrently XCharMap实现不支持Unicode。 致谢和参考文献 字体组合克里斯失去 汉斯迪特里希XFontCombo——一个OpenType-aware字体下拉列表框 修订历史 1.0版- 2003年6月4日 首次公开发行。 使用 这个软件是释放到公共领域。你可以自由使用它在任何你喜欢的方式。如果你修改或扩展它,请考虑发布新的代码给大家分享。这个软件提供了“是”,没有表示或暗示的保证。我接受任何损害或损失不承担任何责任的业务,这个软件可能会导致。 本文转载于:http://www.diyabc.com/frontweb/news3716.html