【发布时间】:2013-12-18 17:58:30
【问题描述】:
我正在编写一个 Win32 程序,我想将 X pos 和 Y pos 文本输出到屏幕上,我想知道如何将 SHORT 转换为 TCHAR。不要使用 atoi 或 itoa 函数。
这是一个玩具程序,我想用文本输出鼠标的位置,但我不知道如何将 short 转换为 TCHAR。
【问题讨论】:
-
使用
std::to_string或其宽字符兄弟,不要使用TCHAR类型。TCHAR和朋友们是微软支持 Windows 9x 的技术。您的目标是 Windows 9x 吗? -
当您说“TCHAR”时,您的意思是“单个 TCHAR(它是 either
char或wchar_t的别名,具体取决于您如何编译代码),或者你的意思是“一个 TCHAR 数组”,它又是一个char或wchar_t的数组,换句话说,一个 C 风格的字符串。 -
嗯,你在泄露 DC。此外,您在绘制周期之外进行绘制,这将导致重新绘制损坏。
-
是的,我正在泄漏 DC,但我想知道为什么在绘制周期之外绘制会导致重绘损坏。以及 textout 功能的工作原理。
-
如果您在 WM_MOUSEMOVE 中绘制并且您的整个窗口最终被 WM_PAINT 重绘,您将失去 100,100 处的文本显示。这是因为 WM_ERASEBKGND 会导致整个屏幕被擦除。您基本上需要存储 x,y 坐标并在 WM_PAINT 处理程序中绘制相同的东西