当前位置: 代码迷 >> Windows Mobile >> 怎样设置sip窗口大小?解决方法
  详细解决方案

怎样设置sip窗口大小?解决方法

热度:252   发布时间:2016-04-25 08:05:30.0
怎样设置sip窗口大小?
我想改变高度,在select接口中做如下代码: 

BOOL fRes = FALSE; 
SIPINFO si; 
memset (&si, 0, sizeof (SIPINFO)); 
si.cbSize = sizeof(SIPINFO); // sizeof (si)= 48 
if (SipGetInfo(&si)) 

si.fdwFlags &= ~SIPF_ON; 
si.fdwFlags ¦=SIPF_DOCKED; 
si.rcSipRect.top=50; //at least >26 
si.rcSipRect.bottom=181; 
si.rcSipRect.left=100; 
si.rcSipRect.right=360; 
fRes = SipSetInfo(&si); 


SipShowIM(SIPF_ON); 

GetWindowRect (hwndSip, &rect); 
GetClientRect (hwndSip, &rect); 

SipShowIM(SIPF_OFF); 

//############################ 
memset (&si, 0, sizeof (SIPINFO)); 
si.cbSize = sizeof(si); 
si.cbSize = sizeof(SIPINFO); // sizeof (si)= 48 
if (SipGetInfo(&si)) 

si.fdwFlags &= ~SIPF_ON; 
si.fdwFlags &=~SIPF_DOCKED; 
si.rcSipRect.top=30; //at least >26 
si.rcSipRect.bottom=60; 
si.rcSipRect.left=0; 
si.rcSipRect.right=140; 
fRes = SipSetInfo(&si); 


SipShowIM(SIPF_ON); 

发现sipsetinfo只能设置sip window的窗口位置和显示、隐藏,无法改变窗口大小!! 

top可以人为设置,但bottom却自动变为top+80,就是说人为设置bottom是不起作用的。 
left和right也有同样问题。

我想了一种思路,先得到sip窗口的句柄,然后人为将sip窗口扩充,这样就变大了,但不知道这种方法是否可行。 

那么如何设置sip window的高度为 > 80 pixel 呢?这是个问题。 
有人能解决掉吗?

------解决方案--------------------
In Windows CE 2.10 and later, the SipSetInfo function can either set a SIPINFO structure with the current software-based input panel state or take a SIPINFO structure and use its values to set the current software-based input panel state.

In Windows CE 3.0 and later, you cannot use SipSetInfo to resize the SIP window. Use an IM to resize the SIP window. 


------解决方案--------------------
可以利用SipSetDefaultRect这个函数来改变苏茹面板的位置(不能改变大小),但是它不会立即生效,除非你重新选择输入法。
SIPINFO SipInfo;
memset(&SipInfo,0,sizeof(SIPINFO));
SipInfo.cbSize=sizeof(SIPINFO);
SipGetInfo(&SipInfo);
SipInfo.rcSipRect.top-=50;
SipInfo.rcSipRect.bottom-=50;
if(TRUE==SipSetDefaultRect(&SipInfo.rcSipRect))
{
SipShowIM(SIPF_ON);
}



------解决方案--------------------
我说的那种方法只能改变位置,不能改变大小。而且它不会立即生效,除非你重新选择其他的输入法,这时才会生效。
------解决方案--------------------
如果你只是想改变位置的话用上面的方法就可以了,如果想样改变大小Use an IM to resize the SIP window. 
  相关解决方案