弹出软键盘是需要调用Windows API,目前只能自己写个OCX控件喽。下面是VC中的方法。你参考一下。如何弹出软键盘编号:QA004396
建立日期: 2001年9月5日 最后修改日期:2001年9月5日 
所属类别: C/C++ - Windows API wangshoujin: 
    操作系统:Win98 
    编程工具:Visual C++6.0 
    问题:在vc编程中,我希望单击某个按钮时,弹出软键盘,不知道如何实现? 
    水平: 一无所知 回答:     1、打开/关闭输入法 
    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); 
     } 
     
    } 
    2、打开/关闭软键盘 
    void CHideDlgDlg::OnButton10() 
    { 
     // TODO: Add your control notification handler code here 
     CWnd * pWnd = GetDlgItem(IDC_TREE1); 
     if (pWnd){ 
     pWnd->SetFocus(); 
     
     HIMC hIMC = ImmGetContext(pWnd->m_hWnd); 
     DWORD dwConv, dwSent; 
     DWORD dwTemp; 
     
     ImmGetConversionStatus(hIMC,&dwConv,&dwSent); 
     if (dwConv & IME_CMODE_SOFTKBD) 
     dwConv &= ~IME_CMODE_SOFTKBD; 
     else 
     dwConv |= IME_CMODE_SOFTKBD; 
     
     ImmSetConversionStatus(hIMC,dwConv,dwSent); 
     
     ImmReleaseContext(pWnd->m_hWnd,hIMC); 
     } 
    }