首页 > 解决方案 > 识别 DrawText 将下划线的字符

问题描述

我怎样才能得到DrawText()下划线的字符?

我通过了字符串"my rando&m string"m得到DrawText()下划线。

我想获取带有下划线的字符。请提出解决方案。字符串有时也可以是日语。

一种方法是自己做。我不想自己做,我想从 API 中获得。

标签: winapi

解决方案


SHStripMneumonic函数(UNICODE 或 ANSI)可以做到这一点。

笔记:

  • 它从输入字符串中删除所有 '&' 字符;
  • 它返回带有助记符的最后一个字符,因此例如使用“my rando&m stri&ng”调用它将从字符串中删除所有'&'并返回'n';
  • 如果你加倍它,你可以逃避一个想要的'&'字符。
  • 它被记录为“可通过 Windows XP 和 Windows Server 2003 获得。它可能会在后续版本的 Windows 中被更改或不可用”。有关信息,我在 Windows 11 和最新的 Windows SDK (20348) 上对其进行了测试。

奖励链接:为什么函数 SHStripMneumonic 拼写错误?


推荐阅读