蒙古青年论坛

 找回密码
 注册
查看: 2265|回复: 26

蒙文基础类库

[复制链接]
发表于 2007-6-5 16:52:05 | 显示全部楼层 |阅读模式
在写输入法的过程中,需要处理蒙文,比如在窗口中竖排的显示蒙文。
所以就先把 蒙文基础类库中的 DC 类实现了一下。这个类以vista的
ups10.dll 和 monglian baiti 为基础。

下载vista蒙文输入法
http://www.mglzaluus.com/bbs/vie ... &extra=page%3D3

我分析了一下,需要使用 scriptstringxxx api 来输出蒙文,
所以需要把 dc 封装,用270度旋转字体,然后做了个新的 textout,
这样就基本实现了文字输出。通过这个技术在.net上也应该很容易做出来。
基于java和linux下过一段时间在仔细考虑一下。

蒙文基础类库下一步要做的事情是,做一个 CMWnd 类,用自绘加特定区域
的单击事件的相应,把窗口竖过来,然后把标题栏,最大化最小化关闭按钮
画出来,然后相应事件。

然后再封装 CEdit, Clist ...等其他常用控件。然后用这个类库做一个shall,像
网吧的程序是的把桌面替换成蒙文的。这样就可以真正的蒙化windows了。


类库代码的目录结构
.\include                            类库的头文件
.\lib                                   类库的库文件
.\src                                  类库源代码
.\samples\SampleMDC          类库dc类的例子

[ 本帖最后由 ganjike 于 2007-6-25 13:55 编辑 ]
发表于 2007-6-5 17:22:24 | 显示全部楼层
hoho 期待蒙文 windows
 楼主| 发表于 2007-6-6 07:45:03 | 显示全部楼层
上边的代码需要修正一个没有释放句柄的bug
在  void CMDC::fnSetFontSize(int iSize) 函数中把
m_fontRotate.Detach();  替换成
m_fontRotate.DeleteObject();

如果任何人能在这个代码的基础上进行增加修改,请把修改后的代码
给我,然后把我们共同做的代码合并到一起。

[ 本帖最后由 ganjike 于 2007-6-25 13:57 编辑 ]
发表于 2007-6-8 19:09:47 | 显示全部楼层
辛苦了,我这里文字显示断断续续的..
发表于 2007-6-8 19:10:23 | 显示全部楼层
<img></img> 这些文字
 楼主| 发表于 2007-6-9 08:23:36 | 显示全部楼层
原帖由 wunenqi 于 2007-6-8 19:09 发表
辛苦了,我这里文字显示断断续续的..

能说说你用平台和安装了那个版本的usp10.dll
最好能把程序运行效果的图片发给我,ganjike@hotmail.com
发表于 2007-6-10 13:59:28 | 显示全部楼层
你那个图是怎么发的? 没有网络上的图的情况下.
发表于 2007-6-13 18:02:56 | 显示全部楼层
呵呵..我没装MicroSoft输入法..
现在那个连接不能用了..可不可以再发一个呢?
 楼主| 发表于 2007-6-14 08:29:40 | 显示全部楼层
真有点儿受不了国内了,googlepages 也不让上。gmail也经常上不去。
到哪里找个长期的下载空间呢。:(
发表于 2007-6-16 11:04:42 | 显示全部楼层
我今天装了usp10.dll 现在蒙文基础类库正常显示了. 呵呵.
发表于 2007-6-16 11:08:02 | 显示全部楼层
我用的是VS2003,我第一次打开的时候这些基础类库要做转换,转换之后我开始运行运行,第一次运行报了一个错误,叫Samlple**.exe 文件没找到,我点确定再次运行就正常了..
我对VC++不熟悉,不知道这是什么原因...
 楼主| 发表于 2007-6-16 14:06:36 | 显示全部楼层
原帖由 wunenqi 于 2007-6-16 11:08 发表
我用的是VS2003,我第一次打开的时候这些基础类库要做转换,转换之后我开始运行运行,第一次运行报了一个错误,叫Samlple**.exe 文件没找到,我点确定再次运行就正常了..
我对VC++不熟悉,不知道这是什么原因...


你可以用 c#  来做。其实就是使用script api,你可以考虑用
c# 怎么来调用script api就行了。

[ 本帖最后由 ganjike 于 2007-6-16 14:14 编辑 ]
发表于 2007-6-17 10:50:17 | 显示全部楼层
to ganjike:
  我系统是2000pro sp4 装了ms输入法后系统字体(汉字,英文没事)变得很小,几乎看不清.试了很多方法都没有解决问题,注册表,显示属性通通试过,都不行,有什么好办法么?

在vs2003里试了一下,支持mongol useg 的控件不多,像label , button 这样常用的一些都不支持(还是我做的不对?),你用的是哪个控件?
 楼主| 发表于 2007-6-17 11:19:37 | 显示全部楼层
原帖由 蓝丸 于 2007-6-17 10:50 发表
to ganjike:
  我系统是2000pro sp4 装了ms输入法后系统字体(汉字,英文没事)变得很小,几乎看不清.试了很多方法都没有解决问题,注册表,显示属性通通试过,都不行,有什么好办法么?

在vs2003里试了一下,支持mongo ...

字体小,是在什么里?记事本还是ie里?记事本的话在格式字体中把
字号设大就行了。

2003 没有用过,手头有2005, 在文件中可以直接定义mongol useg 的常量字符串,
在 text 框中可以直接显示蒙文。在paint事件里往窗体表面输出蒙文的时候

Graphics.DrawString  不能自动变形,但是可以变成竖着的。
TextRenderer.DrawText  可以自动变形,但是不支持竖着的。

所以咱们要自己做个textout ,使用旋转字体(支持竖着),用script api 输出(支持变形)
就可以了。

给你发了一个vs2005做的程序的图片。

[ 本帖最后由 ganjike 于 2007-6-17 11:23 编辑 ]
发表于 2007-6-17 11:54:11 | 显示全部楼层
建议 创建一个QQ或MSN群.. 这里讨论效率不是很高.
 楼主| 发表于 2007-6-17 12:01:35 | 显示全部楼层
就怕大家没有时间,同时在线。
发表于 2007-6-17 13:05:43 | 显示全部楼层
:(vs2003里没有TextRenderer类:(


我想我没说清楚.我说的"系统字体"包括所有的标题栏中的字体及ie菜单(包括右键),记事本菜单,写字板菜单,还有vs2003里部分字体.因为太多了所以说成"系统字体"

[ 本帖最后由 蓝丸 于 2007-6-17 13:15 编辑 ]
发表于 2007-6-17 13:21:02 | 显示全部楼层
蒙古技术联盟2862965
蒙化联盟38803882
 楼主| 发表于 2007-6-17 13:42:54 | 显示全部楼层
我在虚拟机里安装了 2k sp4 安装了,原来在2k (不记得那个sp了)也安装过,
没有出现你说的显象,倒是 ie5 不支持竖排,所以文字是横着的。
 楼主| 发表于 2007-6-25 13:34:21 | 显示全部楼层
实现了,菜单,最大最小关闭按钮,但是由于是ansi版导致蒙文标题不能在任务栏中
显示,需要做成unicode版,最好两种版本都支持。最大化按钮里的框和关闭按钮里的叉
还没有画呢。如果竖着的菜单做完的话窗口就完事了,然后是支持蒙文的常用控件了。
ime也写了挺多的,但是还没有完全实现,本想写个文档,发现在制作最初始这个
版本的时候能还不能写出设计文档,技术上需要注意那些细节自己也不清楚,所以没
法写设计文档,只有一个指导性的思路,当写出第一个版本,再升级的时候就可以写
设计文档了。做软件开发经验太重要了。
代码下载地址(googlepage 又好使了,真不容易)
http://ganjike.googlepages.com/tmc.rar
http://ganjike.googlepages.com/tmime.rar
http://ganjike.googlepages.com/setup.rar


[ 本帖最后由 ganjike 于 2007-6-25 14:07 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|蒙古青年论坛

GMT+8, 2026-7-25 02:52 , Processed in 0.015744 second(s), 14 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表