我看wince现实软键盘是调用的api:sipshowim();可这函数好像找不到源码。。。。。所以我还没找到修改软键盘位置的方法,希望知道的指导。。。谢谢
有专用的SIP调整位置函数,LZ去仔细看看MSDN吧
不用研究源代码的.
2.4. 修改软键盘(SIP)显示位置的方法
使用函数:
void CSIPDemoDlg::OnButtonMove()
{
SIPINFO SipInfo;
memset(&SipInfo,0,sizeof(SipInfo));
SipInfo.cbSize=sizeof(SIPINFO);
BOOL bRes = SipGetInfo(&SipInfo);
if ( bRes )
Value Description
KEYEVENTF_KEYUP
If specified, the key is being released. If not specified, the key is
being depressed.
如果指定则按键将被释放,不指定,按键被按下触发。
KEYEVENTF_SILENT
If specified, a keystroke is simulated, but no clicking sound is
made.如果指定该位,则键击事件是被模仿的,没有敲击事件发生
{
CRect rc(SipInfo.rcSipRect);
rc.OffsetRect(0,-20); // 修改此处可以更改显示位置
SipSetDefaultRect(&rc);
CLSID clsid;
if ( SipGetCurrentIM(&clsid) )
{
SipSetCurrentIM(&clsid);
}
SipShowIM(SIPF_ON);
}
}
楼主给分,呵呵,刚总结的
void CSIPDemoDlg::OnButtonMove()
{
SIPINFO SipInfo;
memset(&SipInfo,0,sizeof(SipInfo));
SipInfo.cbSize=sizeof(SIPINFO);
BOOL bRes = SipGetInfo(&SipInfo);
if ( bRes )
{
CRect rc(SipInfo.rcSipRect);
rc.OffsetRect(0,-20); // 修改此处可以更改显示位置
SipSetDefaultRect(&rc);
CLSID clsid;
if ( SipGetCurrentIM(&clsid) )
{
SipSetCurrentIM(&clsid);
}
SipShowIM(SIPF_ON);
}
}
这个,上边那个复制的笔记上的乱套了
今天想改软键盘的位置,用了SipSetDefaultRect(&rc)没有成功,明天再试试!先感谢了