其实一开始叫我用TC做界面我是拒绝的,因为TC这么原始的工具做出来的界面能好看到哪里去,这于我这个外观党是会相当受打击的。然而当我开始照着示例实现第一个小程序,我的内心还是小激动的。不同于拿Qt轻轻松松就可以做出像模像样的框架,TC这么原始的工具的好处在于趣味性,真的不一样。
http://www.zhihu.com/question/29403861/answer/44441261
庆幸活在当下,又憧憬前辈们奋斗的光阴。
使用书籍:高级编程技术(好泛的名字……)http://read.pudn.com/downloads105/ebook/432600/TC%B8%DF%BC%B6%B1%E0%B3%CC.pdf
其实说起来拿TC做和拿现在的框架软件做,不同处就像是后者好像50块的拼图,而TC是1000块的.
期末的程序设计作业感觉完全不按上的课来啊,20天完成一个类似日程表的应用程序,TC编译,DOS界面,我可以想象这玩意儿有多丑了……我尽力。很遗憾同期我想完成工作室的考核,无赖5月事情太多,期末考、程设项目、考核项目、乐团演出、它喵的我还加了个社团轮到代部……no zuo no die。向来不是会规划时间的人,这次尝试希望能成功(不成功我还有什么脸谈梦想).
1.void textmode(int newmode);
2.void window(int left, int top, int right, int bottom);
定义屏幕上的一个矩形域作为窗口。例如,要定义一个窗口左上角在屏幕(20,5)处,大小为 30 列 15 行的窗口可写成: window(20, 5, 50, 25);
ps:现行窗口只能有一个(因为 DOS 为单任务操作系统)。
3.设置背景颜色函数:void textbackground(int color);
设置字符颜色函数:void textcolor(int color);
Turbo C 另外还提供了一个函数,可以同时设置文本的字符和背景颜色,这个函数是 文本属性设置函数:void textattr(int attr);
假如要设置一个兰底黄字: textattr(YELLOW+(BLUE<<4));
若再要求字符闪烁,定义变为: textattr(128+YELLOW+(BLUE<<4);
注意:
(1) 对于背景只有 0 到 7 共八种颜色,取大于 7 小于 15 的数,则代表的颜色与减 7 后的值对应的颜色相同;
(2) 用 textbackground()和 textcolor()函数设置了窗口的背景与字符颜色后,在没有用 clrscr()函数清除窗口之前,颜色不会改变,直到使用了函数 clrscr(),整个窗口和随后输出到窗口中的文本字符才会变成新颜色。
(3) 用 textattr()函数时背景颜色应左移 4 位,才能使 3 位背景颜色移到正确位置;
4.状态查询函数:void gettextinfo(struct text_info *f);
5.键盘输入
当我们按下键盘上某键时,系统如何知道某键被按下呢?它的奥妙在于计算机键盘是一个智能化的键盘,在键盘内有一个微处理器,它用来扫描和检测每个键的按下和拾起状态。然后以程序中断的方式(INT 9)与主机通信。ROM 中 BIOS 内的键盘中断处理程序,会将一个字节的按键扫描码(扫描码的 0~6 位标识了每个键在键盘上的位置,最高位标识按键的状态,0 对应该键是被按下;1 对应松开。它并不能区别大小写字母,而且一些特殊键如PrintScreen 等不产生扫描码直接引起中断调用)翻译成对应的 ASCII 码。
由于 ASCII 码仅有 256 个(28),它不能将 PC 键盘上的键全部包括,因此有些控制键如CTRL,ALT,END,HOME,DEL 等用扩充的 ASCII 码表示,扩充码用两个字节的数表示。第一个字节是 0,第二个字节是 0~255 的数,键盘中断处理程序将把转换后的扩充码存放在Ax 寄存器中,存放格式如表 3-3 所示。对字符键,其扩充码就是其 ASCII 码。
是否有键按下,何键按下,简单的应用中可采用两种办法:一是直接使用 Turbo C提供的键盘操作函数 bioskey()来识别,二是通过第一章 1.2.4.3 节介绍的 int86()函数,调用 BIOS的 INT 16H,功能号为 0 的中断。它将按键的扫描码存放在 Ax 寄存器的高字节中。
键盘操作函数 bioskey():int bioskey(int cmd);
它在 bios.h 头文件中进行了说明,参数 cmd 用来确定 bioskey()如何操作:
【今晚继续=w=且码且珍惜~】