控制台界面控制(三):设置窗口标题
来源:互联网 发布:网络负面舆情处理 编辑:程序博客网 时间:2024/05/16 01:43
相关信息
字符编码 UNICODE:如果只是用英文字母就能代表足够多的意思,UNICODE就不会出现了。著名的 ASCII 码已经可以表示大部分信息,它是一种非常可靠的标准,没有其他哪一种标准能像 ASCII 一样普及。但在美国之外的世界里,ASCII 就显得力不从心。例如我国有上万个不同的字,区区百来个表示符号根本无从表示。于是可以想见,各个地方都出现了不同的编码规格,以满足对本国字符的支持,它们是不统一的。倘若一个国家或地区的编码要让另一个国家或地区的计算机识别,这并不是一件容易的事,不同的规格之间需要不同的转换和解释程序,困难重重。为了尽量避免编码上的歧义性,UNICODE 做出了重大的贡献。它最棒的地方是,UNICODE 就只有一个字符集,避免二义性。它是一种和 ASCII 完全不同的编码规范,缺点是需要占用更大的内存空间。既然各有优缺点,也就没有纯粹的谁好谁坏,这时候也就会带来一个问题:到底在什么时候该用哪种编码规范?答案是不确定的,需要视情况而定。而我们知道,在事情的开端就做一个重要的决定是很危险的,搞不好要重新来过。相比于在写一个程序的时候就确定一个标准,在后期进行灵活切换要来得更安全些,且方便。
一般通过宏定义来解决这个问题。如果头文件中定义了 UNICODE,那么整个文档中的编码格式就是 UNICODE,否则 ASCII。这个办法是很好的。
C++ 支持两种字符串,即常规的ANSI编码(使用""包裹)和Unicode编码(使用L""包裹)。Windows 编程中定义了一些宏,比如 TEXT(""),比如 _stprintf。它们在定义了UNICODE 时分别表示为 L“”,和 swprintf,否则为 ASCII 版的 "" 和sprintf;
设置窗口标题
// ---- 设置窗口标题void CMyConsole::SetTitle(const TCHAR *chTitle){SetConsoleTitle(chTitle);}函数参数类型为 TCHAR,它可以灵活地在 ASCII 和 UNICODE 中切换;这样一来在输入文本的时候也就需要注意,同样地要使用泛型版本:TEXT(),如下:
myConsole.SetTitle("Test");// ASCII版,Unicode版本编译不通过myConsole.SetTitle(TEXT("Test"));// 通用版
后续
// ---- 设置窗口标题void CMyConsole::SetTitle(const char *chTitle){SetConsoleTitle(chTitle);}
- 控制台界面控制(三):设置窗口标题
- 控制台界面控制(三):设置窗口标题
- 设置控制台窗口的标题
- 控制台窗口界面控制设计
- 控制台窗口界面控制设计
- 控制台窗口界面控制设计
- 控制台窗口界面编程控制
- 控制台窗口界面编程控制
- 控制台界面控制(八):光标设置
- 控制台界面控制(八):光标设置
- 控制台窗口界面的编程控制(一)
- 控制台窗口界面的编程控制(二)
- 控制台窗口界面控制设计(一)
- 控制台窗口界面的编程控制(二)
- 控制台窗口界面的编程控制
- 控制台界面控制(一)
- 控制台界面控制(四)
- 控制台界面控制(四)
- Oracle学习笔记--grouping/grouping_id
- 寻找最小的k个数(Select方法)
- java设计模式之单例模式Singleton
- Linux内核初识
- java 设计模式之适配器Adapter
- 控制台界面控制(三):设置窗口标题
- 寻找最小的k个数(Randomized-Select方法)
- 小巷
- java正则表达式提取需要的字符并放入数组;ArrayList数组去重复
- java 设计模式之桥接模式Bridge
- cocos2d-x初探学习笔记(29)-cocosBuilder
- 偶有小感
- How to install deb packages on Ubuntu
- 安装Gimp没有babl问题解决