首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > WinCE >

怎么改变WINCE的SIP(软键盘)的显示位置

2012-12-19 
如何改变WINCE的SIP(软键盘)的显示位置我的程序中的输入框总被软键盘挡住,请问如何通过编程改变WINCE的SIP

如何改变WINCE的SIP(软键盘)的显示位置
我的程序中的输入框总被软键盘挡住,请问如何通过编程改变WINCE的SIP(软键盘)的显示位置。
注:我在网上看到
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);
}
}
但是它用了CRECT这个MFC的类,我不想用MFC的类或是函数,就用WIN32的类或函数
[解决办法]
关注。。。
[解决办法]
rcSipRect是一个RECT类型结构体的变量,跟MFC无关,你手动改一下rcSipRect的内容就行了
[解决办法]
SIP 函数肯定是可以实现的

LZ查一下Help文档吧
[解决办法]

引用:
rcSipRect是一个RECT类型结构体的变量,跟MFC无关,你手动改一下rcSipRect的内容就行了

Crect不是MFC的类吗
[解决办法]
但是RECT只是一个结构体,你可以看一下SIPINFO的定义,里面写的很清楚
[解决办法]
我是这样改的
if ( bRes )
{
rc.top = SipInfo.rcSipRect.top+200;
rc.bottom = SipInfo.rcSipRect.bottom+200;
rc.left = SipInfo.rcSipRect.left;
rc.right = SipInfo.rcSipRect.right;
//CRect rc(SipInfo.rcSipRect);
 //rc.OffsetRect(0,240);
 SipSetDefaultRect(&rc);
 CLSID clsid;
 if ( SipGetCurrentIM(&clsid) )
 {
 SipSetCurrentIM(&clsid);
 }
 SipShowIM(SIPF_ON);
}
软键盘显示不出来
[解决办法]
SipGetInfo之后,得到了SIPINFO结构体的内容,你修改完内容再SipSetInfo就行了啊,不用SipSetDefaultRect函数……
[解决办法]
SIPINFO SipInfo;
memset(&SipInfo, 0, sizeof(SipInfo));
SipInfo.cbSize = sizeof(SipInfo);

RECT rect;
       //GetClientRect(&rect)更换为获得相应控件的代码
        //本人这里的代码是在一个CEdit继承类中执行的
GetClientRect(&rect); 
ClientToScreen(&rect);

BOOL bRet = SipGetInfo(&SipInfo);
if (bRet)
{
 SipInfo.rcSipRect.top = rect.bottom;
SipInfo.rcSipRect.bottom = rect.bottom;
 SipInfo.rcSipRect.left = rect.left;
SipInfo.rcSipRect.right = rect.left;

SipSetInfo(&SipInfo);
}
     
     SipShowIM(SIPF_ON);
这个代码应该可以实现
[解决办法]
先要调用 SHOW: SipShowIM(SIPF_ON),然后改变位置,不想要时关掉就OK啦
[解决办法]
函数都用了,还不用MFC的,呵呵
[解决办法]
我原来显示不出来是因为显示屏幕外面去了,我用的是小键盘,但是用大键盘没什么反应,SipSetDefaultRect(&rc);不起作用
请问大键盘和小键盘有什么区别啊
[解决办法]
我想试试movewindow,但是如何得到软键盘的hwnd啊
[解决办法]
用FindWindow找吧


[解决办法]
FindWindow总是返回unusedxxx,然后程序就崩溃了,弹出访问冲突
[解决办法]
关注                 关注

[解决办法]
谢谢,学习了。

热点排行