MFC中调用软键盘


转http://blog.csdn.net/owldestiny/article/details/6102932

1、前提

  1. //头文件中添加包含文件  
  2. #include <Imm.h>  
  3. //源文件中添加lib文件  
  4. #pragma comment(lib,"imm32.lib")  

2、调用

在需要调用软键盘的响应中添加:

  1. HIMC hIMC = ImmGetContext(pWnd->m_hWnd);   //   接受输入的窗口句柄   
  2. DWORD dwConv, dwSent;  
  3. ImmGetConversionStatus(hIMC,&dwConv,&dwSent);  
  4. if (dwConv & IME_CMODE_SOFTKBD)  
  5.  dwConv &= ~IME_CMODE_SOFTKBD;//   这是关闭软键盘   
  6. else  
  7.  dwConv |= IME_CMODE_SOFTKBD;   //   打开软键盘    
  8. ImmSetConversionStatus(hIMC,dwConv,dwSent);  
  9. ImmReleaseContext(pWnd->m_hWnd,hIMC);   

以上内容转自http://xiaoyueweiguang.blog.163.com/blog/static/117267556200991210485065/

 

修改一下,使得mfc中的输入框在获取输入焦点时使用软键盘,失去焦点时不使用软键盘

 

在dlg类中加入成员变量

  1. public:  
  2.     // 软键盘  
  3.     HIMC m_hIMCSoftKey;  
  4. public:  
  5.     // 软键盘  
  6.     DWORD m_dwConvSoftKey;  
  7. public:  
  8.     // 软键盘  
  9.     DWORD m_dwSentSoftKey;  

在oninitdialog中加入

  1. g_hwnd=this->GetSafeHwnd();  
  2.     //软键盘   
  3.      m_hIMCSoftKey = ImmGetContext(g_hwnd);//   接受输入的窗口句柄  
  4.     ImmGetConversionStatus(m_hIMCSoftKey,&m_dwConvSoftKey,&m_dwSentSoftKey);  

在ondestroy中加入

  1. //软键盘  
  2. ImmReleaseContext(g_hwnd,m_hIMCSoftKey);   

在onsetfocus中加入

  1. m_dwConvSoftKey |= IME_CMODE_SOFTKBD;   //   打开软键盘    
  2. ImmSetConversionStatus(m_hIMCSoftKey,m_dwConvSoftKey,m_dwSentSoftKey);   

在onkillfocus中加入

  1. m_dwConvSoftKey &= ~IME_CMODE_SOFTKBD;//   这是关闭软键盘   
  2. ImmSetConversionStatus(m_hIMCSoftKey,m_dwConvSoftKey,m_dwSentSoftKey);   

 


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值