码迷,mamicode.com
首页 > 其他好文 > 详细

TurboC图形界面学习

时间:2015-05-08 06:59:04      阅读:701      评论:0      收藏:0      [点我收藏+]

标签:

其实一开始叫我用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=且码且珍惜~】

 

TurboC图形界面学习

标签:

原文地址:http://www.cnblogs.com/suzyc/p/4486636.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!