做过的一个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}