Windows SDK程序的输出文字和格式控制(wsprintf、swprintf、Textout)
2016-05-25 18:38
453 查看
程序的输出如上图;
输出相关的代码如下;
TCHAR szBuffer [40] ;
TCHAR szHello[] = TEXT("Hello, C-Free!");
int iLength ;
TextOut (hdc, 200, 20, "Hello, C-Free!", 14) ;
TextOut (hdc, 200, 40, szHello, 14) ;
iLength = wsprintf (szBuffer, TEXT ("The sum of %i and %i is %i"),
7, 8, 7 + 8) ;
TextOut (hdc, 200, 60, szBuffer, iLength) ;
float x = 1.2345f;
iLength = wsprintf(szBuffer, TEXT ("%f"), x );
TextOut (hdc, 200, 80, szBuffer, iLength) ;
char c1="a";
iLength = wsprintf(szBuffer, TEXT ("c1 is %c"), c1 );
TextOut (hdc, 200, 100, szBuffer, iLength) ;
TCHAR c2="b";
iLength = wsprintf(szBuffer, TEXT ("c1 is %c"), c2 );
TextOut (hdc, 200, 120, szBuffer, iLength) ;
iLength = swprintf( szBuffer, 512, TEXT("x = %f"), x );
TextOut (hdc, 200, 140, szBuffer, iLength) ;
首先是输出字符串;
然后输出整型;
wsprintf不支持浮点,会直接输出字符f;
单个字符大概不能格式化到字符数组中输出;
swprintf支持浮点;
最后一次的输出,对swprintf的调用存在一点问题,啥也没输出;
char是C语言标准数据类型,字符型,至于由几个字节组成通常由编译器决定,一般一个字节。Windows为了消除各编译器的差别,重新定义了一些数据类型。
CHAR为单字节字符。还有个WCHAR为Unicode字符,即不论中英文,每个字有两个字节组成。如果当前编译方式为ANSI(默认)方式,TCHAR等价于CHAR,如果为Unicode方式,TCHAR等价于WCHAR。LPCSTR 相当于CONST CHAR * 和LPSTR 相当于CHAR *。
相关文章推荐
- 如何重装TCP/IP协议
- Windows 8 官方高清壁纸欣赏与下载
- 谁是桌面王者?Win PK Linux三大镇山之宝
- 对《大家都在点赞 Windows Terminal,我决定给你泼一盆冷水》一文的商榷
- Windows Clang开发环境备忘
- Android ADT 23.0.0无法更新到23.0.2问题解决方案
- 从Windows系统下访问Linux分区相关软件
- 对《大家都在点赞 Windows Terminal,我决定给你泼一盆冷水》一文的商榷
- Windows下搭建本地SVN服务器
- 使用Windows原生命令一键清空剪贴板
- 利用开源软件打造自己的全功能远程工具
- Windows 8虚拟机不能全屏的解决方法
- Visual Studio 2012 示例代码浏览器 - 数以千计的开发示例近在手边,唾手可得
- Visual Studio 2012 示例代码浏览器 - 数以千计的开发示例近在手边,唾手可得
- SDKMAN:轻松管理多个软件开发套件 (SDK) 的命令行工具
- 微软镜像下载
- windows server域用户提升到本地更高权限组中的方法