tempad
Readygo技术搜索引擎 >>软件工程 >> 如何开发输入法程序

如何开发输入法程序

Readygo技术搜索引擎 网络搜索 efish 2008-1-17 7:16:39

如何开发输入法程序

楼主mickwang(*pMick)2002-10-22 12:09:48 在 VC/MFC / 硬件/系统 提问

请提供一些思路和方法  
  有vc源码的请给一份  
  tcmick@163.com  
   
  问题点数:0、回复次数:12Top

1 楼xuefl66(xuefl66)回复于 2002-10-22 12:41:08 得分 0

see  
  see  
  !!!!!!Top

2 楼del_c_sharp(武林中传说的摩托牛拉)回复于 2002-10-22 17:12:43 得分 0

普通都是这样做的,将自己的程序attach到活动进程,然后激活自己的窗体,进行输入法的选择,最后用wm_ime_key发送文本到文本框Top

3 楼uaiia(老菜鸟)回复于 2002-10-22 22:18:27 得分 0

输入法程序(IME)其实就是一种动态链接库(DLL),在动态链接库中  
  导出下列函数  
   
  BOOL   WINAPI   ImeInquire(LPIMEINFO   lpIMEInfo,LPTSTR   lpszUIClass,LPCTSTR   lpszOption)  
  {  
  ......  
  return   TRUE;  
  }  
   
   
  BOOL   WINAPI   ImeConfigure(HKL   hKL,HWND   hWnd,   DWORD   dwMode,   LPVOID   lpData)  
  {  
  ........  
  return   TRUE;  
  }  
   
   
  DWORD   WINAPI   ImeConversionList(HIMC   hIMC,LPCTSTR   lpSource,LPCANDIDATELIST   lpCandList,DWORD   dwBufLen,UINT   uFlag)  
  {  
          return   0;  
  }  
   
   
  BOOL   WINAPI   ImeDestroy(UINT   uForce)  
  {  
  return   TRUE;  
  }  
   
   
  LRESULT   WINAPI   ImeEscape(HIMC   hIMC,UINT   uSubFunc,LPVOID   lpData)  
  {  
  ........  
  return   TRUE;  
  }  
   
   
  BOOL   WINAPI   ImeProcessKey(HIMC   hIMC,UINT   vKey,LPARAM   lKeyData,CONST   LPBYTE   lpbKeyState)  
  {  
  ...........  
  return   TRUE;  
  }  
   
  //bool   PmIn   PmOut   PmStart   PmClose   SoundIn   SoundOut   SoundStart   SoundClose  
   
  BOOL   WINAPI   ImeSelect(HIMC   hIMC,   BOOL   fSelect)  
  {  
  ...........  
  return   TRUE;  
  }  
   
   
  BOOL   WINAPI   ImeSetActiveContext(HIMC   hIMC,BOOL   fFlag)  
  {  
  .............  
  return   TRUE;  
  }  
   
  UINT   WINAPI   ImeToAsciiEx   (UINT   uVKey,UINT   uScanCode,CONST   LPBYTE   lpbKeyState,LPDWORD   lpdwTransKey,UINT   fuState,HIMC   hIMC)  
  {  
  .............  
  return   r;  
  }  
   
   
  BOOL   WINAPI   NotifyIME(HIMC   hIMC,DWORD   dwAction,DWORD   dwIndex,DWORD   dwValue)  
  {        
  ...................  
          return   TRUE;  
  }  
   
   
  BOOL   WINAPI   ImeRegisterWord(LPCTSTR   lpRead,   DWORD   dw,   LPCTSTR   lpStr)  
  {  
          return   TRUE;  
  }    
   
   
  BOOL   WINAPI   ImeUnregisterWord(LPCTSTR   lpRead,   DWORD   dw,   LPCTSTR   lpStr)  
  {  
          return   TRUE;  
  }  
   
   
  UINT   WINAPI   ImeGetRegisterWordStyle(UINT   nItem,   LPSTYLEBUF   lp)  
  {  
  return   0;  
  }  
   
   
  UINT   WINAPI   ImeEnumRegisterWord(REGISTERWORDENUMPROC   lpfn,   LPCTSTR   lpRead,   DWORD   dw,   LPCTSTR   lpStr,   LPVOID   lpData)  
  {  
  return   0;  
  }  
   
   
  BOOL   WINAPI   ImeSetCompositionString(HIMC   hIMC,   DWORD   dwIndex,   LPCVOID   lpComp,   DWORD   dwComp,   LPCVOID   lpRead,   DWORD   dwRead)  
  {  
          return   FALSE;  
  }  
     
   
   
  LRESULT   WINAPI   UIWndProc(HWND   hWnd,UINT   message,WPARAM   wParam,LPARAM   lParam)  
  {  
  ....................  
          return   0;  
  }  
  Top

4 楼jackyzhou(哥老会)回复于 2002-10-23 19:27:01 得分 0

admire  
  Top

5 楼iicup(双杯献酒)回复于 2002-10-23 19:30:29 得分 0

GZTop

6 楼zhenxizhou(东门行)回复于 2003-04-05 10:47:51 得分 0

www.easthot.net主页左中:  
  vc输入法源码下载。Top

7 楼3jaja(缘来如此)回复于 2003-04-06 09:32:04 得分 0

http://www.freewebs.com/3jj/      
  http://expert.csdn.net/Expert/topic/1553/1553271.xml?temp=.331463  
   
  Top

8 楼afc(afc)回复于 2003-04-06 09:48:11 得分 0

微软的DDK中有源代码Top

9 楼cjw1881(快乐楼主)回复于 2003-04-06 11:20:50 得分 0

GZTop

10 楼yyan(清茶)回复于 2003-04-06 11:31:12 得分 0

gzTop

11 楼tigerfox(风之力:=Doing.浪淘沙)回复于 2003-04-06 11:36:33 得分 0

DDK中有个区位码输入法源码  
   
  看一看。  
   
  也可用输入法生成器,做这样只需要将注意力集中到编码方式中就行了。  
   
  如果要加入自己的特色,实现优秀的输入法,需采用IME/IMM机制。Top

12 楼nonocast(如果没有如果)回复于 2003-04-07 07:14:12 得分 0

我发给你  
  不过你要记得给分哦Top

责任编辑: efish 参与评论 查找更多:
相关文章
WebSphere + Visual Age For Java的近來坐坐﹗ WebSphere + Visual Age For Java的近來坐坐﹗
请帮我分析一下这几行代码好吗? 请帮我分析一下这几行代码好吗?
急。。。,请问那位有crystatl report 8.5安装结束时… 急。。。,请问那位有crystatl report 8.5安装结束时要的注册码?
这些算法大家都懂吗?常常用到吗?我是说现在正工作… 这些算法大家都懂吗?常常用到吗?我是说现在正工作的程序员。
请问 servlet 的过期问题 请问 servlet 的过期问题
被侵入了我的电脑 被侵入了我的电脑
关于VB入门的问题 关于VB入门的问题
请大家帮忙看看这样的报表是怎么做出来的 请大家帮忙看看这样的报表是怎么做出来的
哪里有G.711,G.72x系列文档可以免费下载? 哪里有G.711,G.72x系列文档可以免费下载?
可以在ORACLE中删除已有数据的一个字段吗? 可以在ORACLE中删除已有数据的一个字段吗?
2秒记住本站域名

玩过泡泡龙吗?Readygo?Go! 再加上.Com.Cn的后缀,那就是大名小顶的readygo.com.cn

分类导航
Readygo技术搜索引擎