WM5调用系统输入法

自定义框架如何与系统输入法连接:

首先要调出输入法:

void CInputPage::OnOpenSip()
{
 if( m_b_btnSip )// 如果打开了那么关闭,如果关闭呢就打开
 {

  m_btn_SIP.SetCaption(_T("手写"));
  HWND SipButton = FindWindow(TEXT("MS_SIPBUTTON"), NULL);
  if( SipButton != NULL)
   ::ShowWindow(SipButton,SW_HIDE);

  m_b_btnSip = false;
  SipShowIM(SIPF_OFF);
  SHSipPreference(m_hWnd, SIP_FORCEDOWN);
 }
 else
 {  

  HWND SipButton = FindWindow(TEXT("MS_SIPBUTTON"), NULL);
  if( SipButton != NULL)
   ::ShowWindow(SipButton,SW_SHOW);

  m_b_btnSip = true;
  SipShowIM(SIPF_ON);
  SHSipPreference(m_hWnd, SIP_UP);
 }

然后接收WM_CHAR消息

LRESULT CInputPage::OnInputChar(WPARAM wParam, LPARAM lParam)
{
 int nwParamFlag = (int)wParam;
 int nlParamFlag = (int)lParam;

 switch(nwParamFlag)
 {
 case 8:
  {
   if( m_nResValNum>0 )
   {
    m_ResValue[m_nResValNum-1] = (TCHAR)('/0');
    m_nResValNum--;
   }
   else
   {
    m_ResValue[0] = (TCHAR)('/0');
    m_nResValNum = 0;
   } 
   break;
  }
 case 13:
  {
   break;
  } 
 case 32:
  {
   break;
  }
 case 18:
  {
   break;
  }
 default:
  {
   if(nwParamFlag>47)
   {
    if( m_nResValNum<INPUTWINDOW_RESVAL_LEN )
    {
     m_nResValNum++;
     m_ResValue[m_nResValNum-1] = nwParamFlag;
     m_ResValue[m_nResValNum] = (TCHAR)('/0');
    }
    else
    {

    }
   }
   break;
  }
 }

 m_input_edt.SetCaption( m_ResValue );
 return CATCHMSG;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值