jig 发表于 2006-10-1 10:52

[原创]输入系统 -- 全拼汉字输入

<P>            输入系统 -- 全拼汉字输入<br>作者:孙靖(Jig)     时间:2006 - 10 - 1    <br>若要转贴或使用本文章介绍的技术,请在你发布的文章或作品中注明出处。</P>
<P>    这个是很久以前的一个作品,可能很多朋友看了后会觉得很垃圾,的确这个做的是很简单,只是当时一时兴起就做了这个。<br>    其实用键盘做输入法很简单,只要自己确立好字库,然后编程建立还输入与字库的对应关系,再将字库显示出来就OK了。这里我是做了简单的全拼输入法,每次只能输入一个文字,且不具有联想功能(有兴趣的朋友可以去实现这样的功能,其实很简单)。</P>
<P>    函数介绍:<br>    本输入套件其实就只有4个函数。<br>SJ_scanf_T *SJ_create_scanf(char *name_bmp[]);            /* 给输入系统开辟空间和给出皮肤路径 */<br>void SJ_win_scanf(int x, int y, SJ_scanf_T *SCANF);        /* 输入函数,调用此函数即可实现汉字的输入 */<br>void SJ_move_scanf(int x, int y, SJ_scanf_T *SCANF);        /* 移动标识 */<br>void SJ_destroy_scanf(SJ_scanf_T *SCANF);            /* 销毁输入系统,释放内存 */</P>
<P>    在这什么来看看输入系统的数据结构:<br>typedef struct            /* 自定义输入系统结构 */<br>{<br>    char key_en_ch;        /* 标记输入的字符为英文还是中文,分别为 0英,1中 */<br>    char key_en_ch_t;<br>    char key_capslock;        /* 标记为大小写,0小,1大 */<br>    char english;        /* 记录英文字符 */    <br>    char chinese[5];        /* 记录中文字符串,两个字节 */<br>    char name_bmp[3][20];    /* 记录资源图片名称 */<br>    char han_zi[414][11];    /* 记录字库读音 */<br>    int  x, y;<br>    long count;            /* 记录有多少个字节 */<br>    BITMAP *image;<br>} SJ_scanf_T;</P>
<P>    其中 key_en_ch 标记将输出的是在中文还是英文。若是中文,用户应当打印 chinese[5],否则打印 english。<br>    朋友,按F1可以在中英文中互相转换,翻页即为+,-键。还可以在字库中加入汉字,就可以在本输入系统中使用了。<br><br>采用DEV+NEO制作。<br><br>效果图片:<br></P>[attach]12231[/attach]<br><br>作品下载:<br><a href="http://upload.programfan.com/upfile/200610011055386.zip" target="_blank" >http://upload.programfan.com/upfile/200610011055386.zip</A> <br>
[align=right][color=#000066][此贴子已经被作者于2006-10-1 10:55:10编辑过][/color][/align]

一笔苍穹 发表于 2006-10-4 11:36

哦,发出来了,支持一下!

jig 发表于 2006-10-4 14:30

<P>呵呵,也只有你支持我了,呵呵</P>
<P><BR>对了,我打算做个比较强大的编译器外科,真的打算把NEO容入进去,做成VB那样功能,支持TC2,3编译器,支持汇编,也支持脱壳处理,可以直接进行系统级程序编程.</P>

cdmalcl 发表于 2006-10-8 20:44

[em17]靖哥真强<BR>靖哥的学习的速度太快了[em04]<BR>看看自己还是在停留[em03]

C语言学习者 发表于 2006-10-14 12:56

为什么没有退出功能?我只有在资源管理器关掉它。

cdmalcl 发表于 2006-10-14 18:54

有<BR>你自己看看说明文档

C语言学习者 发表于 2006-10-14 18:59

为什么不见呢

jig 发表于 2006-10-14 19:45

<P>朋友,可以切换到英文输入方式下,按 q 就可以退出</P>

C语言学习者 发表于 2006-10-14 19:49

我应该向你学习一下,还想问你,你花了多少时间啊!

jig 发表于 2006-10-14 20:00

朋友,等你有一定基础到了一定水平后你会对编程有更多的理解,其实很多小型作品做起来就一两天,到时候你也会有同样的感受的。

Iamwula 发表于 2007-1-4 09:36

<P>顶[em17]</P>

卧龙孔明 发表于 2007-8-14 18:08

楼主:<BR>我运行后不出现界面而是直接出错退出,重编译后故障依旧,请问是什么原因?<BR>还有我用那个 风之国界面编辑控件 后编译后的程序在自己的机器上(安有allegro)可以正常使用,在其它电脑上界面出现黑块(界面不自动刷新),出现停滞(甚至我运行您写的那个五子棋都这样),我确定那个alleg41.dll/alleg42.dll和其它程序运行的所需文件都在同一目录,请问如何使使用neo for dev + 风之国界面编辑控件 编写的程序可以任意电脑正常使用呢?

jig 发表于 2007-8-14 18:49

<P>我也出现过这样的情况,<br><br>当可以肯定的不是程序问题,而是可能缺少或是低版本的某些DLL动态连接库<br><br>因为你使用的NEO FOR DEV + 风之国界面,其实是一些于硬件无相关上层建筑代码。<br><br>他其实就是用了ALLAGRE ,所以你先用基本的ALLAGRE编一个小程序看看,要是不能运行说明是系统配置方面的问题<br><br>只要你用ALLAGRE编译出来的程序能正常运行,那你使用 NEO FOR DEV + 风之国界面 就一定没问题<br><br><br>不好意思,我自己也一直没去具体细查到底是哪方面配置有问题,看论坛牛哥哥们来看看。</P>
<P>这个问题可以归结到ALLAGRE的使用特点上。</P>
[align=right][color=#000066][此贴子已经被作者于2007-8-14 19:06:34编辑过][/color][/align]

卧龙孔明 发表于 2007-8-15 09:57

<DIV class=quote><B>以下是引用<U>jig</U>在2007-8-14 18:49:00的发言:</B><BR>
<P>我也出现过这样的情况,<BR><BR>当可以肯定的不是程序问题,而是可能缺少或是低版本的某些DLL动态连接库<BR><BR>因为你使用的NEO FOR DEV + 风之国界面,其实是一些于硬件无相关上层建筑代码。<BR><BR>他其实就是用了ALLAGRE ,所以你先用基本的ALLAGRE编一个小程序看看,要是不能运行说明是系统配置方面的问题<BR><BR>只要你用ALLAGRE编译出来的程序能正常运行,那你使用 NEO FOR DEV + 风之国界面 就一定没问题<BR><BR><BR>不好意思,我自己也一直没去具体细查到底是哪方面配置有问题,看论坛牛哥哥们来看看。</P>
<P>这个问题可以归结到ALLAGRE的使用特点上。</P><BR></DIV>
<P>谢谢您的解答,不过经测试那些仅仅使用allegro的example完全可以正常运行[em13],仅仅是使用了NEO for dev后出现了那样的问题</P>

一笔苍穹 发表于 2007-8-15 12:25

能把问题程序给我一份吗,我想看看

jig 发表于 2007-8-15 17:23

<P>哦??难道是 NEO FOR DEV封的有问题??<br><br>楼上的,直接用我那汉字输入,或那五子棋就可能出现那问题<br><br>不过奇怪,的确是在我的机器上可以,但我曾经在我朋友的机器上就出现了上面说的现象,画面不被刷新。<br><br>不知道你能能重现这个问题不。</P>
[align=right][color=#000066][此贴子已经被作者于2007-8-15 17:24:44编辑过][/color][/align]

ba_wang_mao 发表于 2007-8-15 18:12

牛人,敬佩,学习速度真快!

卧龙孔明 发表于 2007-8-16 08:48

<DIV class=quote><B>以下是引用<U>jig</U>在2007-8-15 17:23:03的发言:</B><br>
<P>哦??难道是 NEO FOR DEV封的有问题??<br><br>楼上的,直接用我那汉字输入,或那五子棋就可能出现那问题<br><br>不过奇怪,的确是在我的机器上可以,但我曾经在我朋友的机器上就出现了上面说的现象,画面不被刷新。<br><br>不知道你能能重现这个问题不。</P><br></DIV>
<P>可以,现在就这样<br>汉字输入:<br>双击后无显示,仅在任务栏中出现不到一秒后消失,同时中间伴随着屏幕黑闪一次</P>[attach]26044[/attach]<br><br>五子棋:<br>双击后运行,黑屏,不刷新,需要将窗口拖至屏幕外后再次拖会,方可刷新一次<br><br>[attach]26046[/attach]<br>
[align=right][color=#000066][此贴子已经被作者于2007-8-16 8:49:04编辑过][/color][/align]

卧龙孔明 发表于 2007-8-16 08:55

<DIV class=quote><B>以下是引用<U>一笔苍穹</U>在2007-8-15 12:25:09的发言:</B><BR>能把问题程序给我一份吗,我想看看</DIV>
<P>不应该是程序的问题,因为jig的所有窗口程序在我这里若未安装allegro都无法正常刷新(重新编译后故障依旧)</P>[attach]26047[/attach]<BR>

vfdff 发表于 2007-8-18 10:00

回复:(jig)[原创]输入系统 -- 全拼汉字输入

<P>您现在编写的这个程序运行后,我发现占的CPU 好多资源<BR><BR>我想这个程序能不能嵌入到其他的程序中呢 ?<BR>因为输入毕竟不可能只如你的程序,在自己的那个见面上进行输入<BR>而应该像网上其他的输入发一样,可以对于别的目标区域也可以进行输入,并与其他输入法做自由的切换 。</P>

页: [1] 2

编程论坛