CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  界面

关闭输入框的输入法的方法,请问如何关闭输入法,很急,在线等

楼主shiziho_cn(狮子泉)2004-08-02 09:52:11 在 VC/MFC / 界面 提问

关闭输入框的输入法的方法,请问如何关闭输入法,很急,在线等    
   
  HIMC   hImc   =   ImmGetContext(((CEdit*)this->GetDlgItem(IDC_EDTKKSTHINMEI))->m_hWnd);  
  if(ImmGetOpenStatus(hImc)) ImmSetOpenStatus(hImc,   FALSE); //   输入法状态   TRUE..On   /   FALSE..Off  
  ImmReleaseContext(((CEdit*)this->GetDlgItem(IDC_EDTKKSTHINMEI))->m_hWnd,   hImc);  
   
  有文章说用上面的代码可以关闭中文输入法,但我试了试,初始化时可以不显示,但选择了ms拼音后仍然可以进入中文阿? 问题点数:100、回复次数:12Top

1 楼laiyiling(陌生人[MVP])回复于 2004-08-02 09:58:44 得分 0

是一个帖子Top

2 楼laiyiling(陌生人[MVP])回复于 2004-08-02 09:59:26 得分 10

#program   comment(lib,"imm32.lib")Top

3 楼shiziho_cn(狮子泉)回复于 2004-08-02 10:03:16 得分 0

不是一个贴子,刚才的通过编译了,但不好用啊,ms拼音仍然可以选择,并且可以输入中文,  
  如果编辑控件得到焦点,用户就只能输入半角呢,我想把输入法关了,用户就入不了汉字了,谁能告诉我呢?Top

4 楼aspnetwuxueyou(SHIP IT)回复于 2004-08-02 10:13:11 得分 30

在OnShow中  
  ImmAssociateContext(g_hWnd,   NULL);Top

5 楼aspnetwuxueyou(SHIP IT)回复于 2004-08-02 10:15:57 得分 0

绝对好用Top

6 楼shiziho_cn(狮子泉)回复于 2004-08-02 10:21:28 得分 0

我在SETFOCUS事件加入,仍然不好用啊  
   
  现在我在对话框放了很多EDIT控件,然后只要其中的一个有这种功能,怎么办呢?  
   
  TO   aspnetwuxueyou(我的心跟着希望在动)   :  
        请问你的ImmAssociateContext(g_hWnd,   NULL);里的g_hWnd是控件句柄码?  
   
  下面是我的代码  
   
  CEdit*   pEdit;  
  pEdit   =   (CEdit*)GetDlgItem(IDC_EDITSUBAC1);  
          /*HIMC   hImc   =   ImmGetContext(pEdit->m_hWnd);  
  if(ImmGetOpenStatus(hImc))  
  ImmSetOpenStatus(hImc,   FALSE);  
  ImmReleaseContext(pEdit->m_hWnd,   hImc); */  
  ImmAssociateContext(pEdit->m_hWnd,   NULL);  
  Top

7 楼aspnetwuxueyou(SHIP IT)回复于 2004-08-02 10:30:59 得分 0

对呀,  
  对话框连input   context都没有了,怎么能输入汉字呢?Top

8 楼shiziho_cn(狮子泉)回复于 2004-08-02 10:56:59 得分 0

可以阿,我都试过了Top

9 楼BestBear(天外飞熊)回复于 2004-08-02 11:05:17 得分 0

怎么一个帖子发两次啊,呵呵Top

10 楼aspnetwuxueyou(SHIP IT)回复于 2004-08-02 11:09:05 得分 20

void   CTestDlg::OnEnSetfocusEdit1()  
  {  
  CEdit*   pEdit   =   (CEdit*)GetDlgItem(IDC_EDIT1);  
  ImmAssociateContext(pEdit->m_hWnd,   NULL);  
  }  
  我这里没有问题呀,微软拼音能激活,但是你输入的话,也都是英文Top

11 楼lixiaosan(小三)回复于 2004-08-02 11:14:03 得分 40

打开/关闭输入法    
   
          void   CHideDlgDlg::OnButton9()    
          {    
            //   TODO:   Add   your   control   notification   handler   code   here    
            CWnd   *   pWnd   =   GetDlgItem(IDC_TREE1);    
            if   (pWnd){    
            pWnd->SetFocus();    
            ImmSimulateHotKey(pWnd->m_hWnd,   IME_CHOTKEY_IME_NONIME_TOGGLE);    
             
            HIMC   hIMC   =   ImmGetContext(pWnd->m_hWnd);    
            DWORD   dwConv,   dwSent;    
            DWORD   dwTemp;    
             
            ImmGetConversionStatus(hIMC,&dwConv,&dwSent);    
            dwConv   |=   IME_CMODE_SOFTKBD;    
             
            ImmSetConversionStatus(hIMC,dwConv,dwSent);    
             
            ImmReleaseContext(pWnd->m_hWnd,hIMC);    
            }    
             
          }Top

12 楼shiziho_cn(狮子泉)回复于 2004-08-02 12:02:26 得分 0

再次感谢大家了,可能是我测试的有问题,现在好用了。  
  aspnetwuxueyou(我的心跟着希望在动)   的比较简单,多谢。Top

相关问题

  • 如何打开或关闭输入法?
  • 输入法
  • officexp输入法
  • 输入法
  • 输入法?
  • 文本框输入法切换!
  • 英语输入法
  • 输入法问题
  • 输入法问题
  • 输入法开发

关键词

  • 输入法
  • 控件
  • idc
  • 中文
  • null
  • himc
  • pedit
  • dwconv
  • immassociatecontext
  • 关闭

得分解答快速导航

  • 帖主:shiziho_cn
  • laiyiling
  • aspnetwuxueyou
  • aspnetwuxueyou
  • lixiaosan

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo