写数据结构的大作业,做管理系统的时候,一个学弟提出来我们做人机交互怎么样。
人机交互啊……交互啊……互啊……
如果说一般代码是砖,C语言这种东西就是烧砖的那种土(砖是土烧的???我读书少猜的。当然,此处不要跟我提汇编。)砖可以一块一块码起来,当然,你拿土堆房子形状可以更为随意,但是前提是你得堆起来,稍不留神留个坑,盖好的全塌了。
C就是这样,API完全暴露在外面不封装,所以明明一个很简单的东西,你需要花费大量的代码去实现它,并且大多数代码甚至与程序本身都无关,只是为了填它自己的坑。所以无论别人如何夸它,我都无法喜欢上它,我不需要写太随心所欲的代码呀,封装好的足够用了。就算我以后会写C++、C#甚至OC,也不想写C,虽然我承认它很强大,学好C语言也很重要。
好了吐槽完毕,实现人机交互。
之前想了三种方案:
直接用win application
想法很美好,直接在VC++6.0里建win application工程Hello World class,呸,Hello World程序(一边写c一边写java和jsp一边写js的纠结……嗯,你试着想一下一边学法语一边学英语一边学日语的混乱)。依我所想应该是有个地方打印出Hello World,然后直接在那个地方加代码就好了。合情合理有木有,可是我就是找了半个多小时,愣是没找着Hello World,开始代码搜索没找着时我还怀疑我装的盗版VC++来着……直到我看遍代码,依然没有……当然,不排除我眼瞎,有兴趣可以扒着找找。
MFC
这是个很神奇的东西,但是我要会写这个早就去写游戏了……最重要的是,没有找到纯C的资料,一个C语言的大作业拿C++写算作弊吗?我是无所谓,毕竟带了一群学霸学弟(在一个个个都是学霸的班级里压力也是很大的……)。
果断放弃,此路显然不通。
Messagebox
这玩意倒是不难的,但是找了好久都不知道它可不可以加自定义函数功能的按钮(还是只有YES/NO),理论上来说应该是可以的,我猜的,别当真。
嵌入HTML
其实最早的时候就有这个想法。直接嵌入HTML,简单多了。
之前好像在哪看见过HTML里还是JS里嵌入C(虽然理论上我觉得是行不通的,毕竟C是需要编译的,但我发誓我真的看到过),当时匆匆一瞥就过去了,以为永远不会写C的,没啥用。终于,报应来了。
无意间找到一行代码:
1 | const TCHAR HtmlStrings[] = {"<FONT COLOR=#GREEN>Hello World</FONT><P><A HREF=\"app:2\">click me</A>\0\ |
它真的是一行我没骗人,谁让C不让换行。
当时想const……看起来有点熟悉啊。
C++关键字,也可以是C关键字!
再一查,果然!
也是凑巧,找到了这个文件注释完整的源码,虽然都是英文,但看还是得看(大不了看不懂百度翻译嘛)。然后大概知道了它怎么用,惊喜的是,它的按钮是拿C绘制的,这个对后面加函数什么的方便多了,毕竟我也不大清楚这里引入的HTML能否像调用JS一样调用C。
到这里,此文该完结了。源码什么的,等我整个项目写完再把自己写好的丢上来吧。
其实更大的目的是,我知道这几种方式都可以实现C的图形界面人机交互,但我目前还做不到,只能找一种我能够理解的方式去做,以后会不会研究我不知道,但或许有用呢?
毕竟,这次也只是一次普通的大作业而已,期末作业还不知道是什么鬼……