分享

C语言快速入门——笑脸绘图程序:窗口实现

 AnonymousV脸 2018-04-08

将控制台窗口分为三部分

分割窗口事实上是通过把输入光标定位到某处,然后使用printf函数输出字符实现的。在程序中,这一功能是由help模块提供,具体由help_init函数提供实现。help模块中的接口使用控制台相关的Windows API(Windows提供的编程接口)来实现定位光标、设置文本颜色功能。这些函数并不属于C运行时库,目前只需要知道其作用就行。

Help.h

注释已经很好的说明了一切。需要注意的是,我们在头文件中只定义了一些常量与接口。上面虽然说这部分代码需要Windows API提供支持,这通常代表需要包含windows.h。但我们并没有,因为这部分是与实现相关的。在头文件中包含太多的头文件,会造成编译时间加长,甚至产生依赖问题。

Help.c

我们包含了Windows.h,同时定义了一个变量hConsole用于保存对控制台窗口的引用。你可能不熟悉HANDLE这个类型,不用多想,认为它同int之类的一样,是一种数据类型即可。代码中也引入了一些Windows Console API,不要纠结于自己不会使用它们。如前篇所言,学到最后,你会明白这很容易。目前只需要把重点放在Help.h提供的接口上。

对于help_init函数,有几点要说明:

控制台窗口左上角的坐标是(0,0),代表第1行第1列。

我们设置了控制台窗口的范围为:80个字符宽 x 40字符高。

从索引(0,20)也就是第1列21行,我们对窗口进行了上下分割

从索引(20,40)第21行41列,我们对下面部分进行了左右分割。

之所以说明这些,是因为后面要将对应的消息输出到正确的位置,需要这些参考信息。

Main.c

有了上面这些辅助函数的帮助,我们只需要简单的调用,便可以得到工作空间。

如果你在Windows 10下运行程序,控制台窗口可能与这里的不一样,这可以通过设置窗口属性来完成。

字体页:我选择的是点阵字体

颜色页:我选择的背景是黑色

选项页:如果有字符乱码的话,可以选中【使用旧版控制台】复选框。

使用Help.h中的其它接口

为了加深对“窗口坐标”的理解,我们决定使用Help.h中光标定位与输出接口,扩展主函数并输出三部分的左上解索引。因为后续的输出需要从这些位置开始。

码字不易,今晚先写到这里,下一篇我们将进入数据组织部分。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多