windows mobile 5.0, 打开,关闭input panel(输入法面板), 会导致程序的属性页(CPropertySheet)显示不正常

做过的一个pocket pc 的程序 , eV4+SP4开发,,。

我的程序主界面下有一个tool bar. ,   其中一个页面是一个属性页用CPropertySheet写的,刚开始在win ce 4.2下开发, 运行正常。  但在window mobile 5.0 下, 切换到属性页面,在打开,关闭输入法的情况下, 那个属性页面会覆盖tool bar.  

猜想, 属性页是dialog, 会全屏显示,但在ce .Net4.2下就是正常的。 在网上查了好多资料也没找到答案,  在MSDN里找到了一篇文章, “Software-Based Input Panel",  在打开,关闭输入法时系统会向应用的程序发送 WM_SETTINGCHANGE  消息,  在程序里响应该消息, 改变程序的默认行为, 正好可以解决该问题。代码如下:

.h 文件添加,

    afx_msg 
void  OnSettingChange(UINT uFlags, LPCTSTR lpszSection); 

.cpp:

void  CNetToolsPropSheet::OnSettingChange(UINT uFlags, LPCTSTR lpszSection) 
{
          
// just redraw the PorpertySheet
        CRect    rc;
        
this->GetWindowRect(&rc);    
        
this->MoveWindow(&rc);    

        
//CPropertySheet::OnSettingChange(uFlags, lpszSection);  //must comment this funtional
}




你可能感兴趣的:(windows mobile 5.0, 打开,关闭input panel(输入法面板), 会导致程序的属性页(CPropertySheet)显示不正常)