CDC类的DrawText函数会将&%绘制成带下划线的%,为什么,怎么解决
时间: 2024-03-06 16:51:12 浏览: 114
CDC类的DrawText函数在绘制文本时会将某些字符进行转义,例如&字符被认为是一个控制字符,如果要在文本中显示&字符,需要使用&&进行转义。而%字符在DrawText函数中也被认为是一个控制字符,它会将后面的字符转换成一个特殊的符号,所以当输入&%时,DrawText函数会将%字符转换成带下划线的%符号。
要解决这个问题,可以使用Escape函数对文本进行转义,例如将%字符转义成%%,然后再调用DrawText函数进行绘制。另一种方法是使用DT_NOPREFIX标志告诉DrawText函数不要进行字符转义,例如:
```
dc.DrawText(_T("Hello &%"), -1, rect, DT_NOPREFIX);
```
这样就可以正常地绘制带有&%字符的文本了。
阅读全文