none
怎样在一个控件获得焦点时打开软键盘? RRS feed

  • 常规讨论

  • 如一个EditBox获得焦点后,这个时候自动打开软键盘,这样可以方便用户输入——SIPINFO、SHSIPINFO、SIPSETINFO、SIPGETINFO里面有些参数弄不明白

    //隐藏输入面板
    BOOL LowerSip()
    {
    BOOL fRes = FALSE;
    SIPINFO si;
    memset( &si, 0, sizeof( si ) );
    si.cbSize = sizeof( si );
    if( SHSipInfo( SPI_GETSIPINFO, 0, &si, 0 ) )
    {
    si.fdwFlags &= ~SIPF_ON;
    fRes = SHSipInfo( SPI_SETSIPINFO, 0, &si, 0 );
    }
    return fRes;
    }

    //升起输入面板
    BOOL RaiseSip( void )
    {
    BOOL fRes = FALSE;
    SIPINFO si;
    memset( &si, 0, sizeof( si ) );
    si.cbSize = sizeof( si );
    if( SHSipInfo( SPI_GETSIPINFO, 0, &si, 0 ) )
    {
    si.fdwFlags |= SIPF_ON;
    fRes = SHSipInfo( SPI_SETSIPINFO, 0, &si, 0 );
    }
    return fRes;
    }
    再试试下面这些:
    //SHSipPreference(m_hWnd, SIP_UP);//弹出输入面板
    //SHSipPreference(m_hWnd, SIP_DOWN);//隐藏输入面板(有一个时延)
    //SHSipPreference(m_hWnd, SIP_FORCEDOWN );//隐藏输入面板(立即)
    //SHSipPreference(m_hWnd, SIP_UNCHANGED );
    //一般只用在调用SIP_DOWN时的的后面,使这个命令无效

    2009年6月25日 7:28