资源描述:
《在wince程序开发中使用软件输入面板》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、在WinCE程序开发中使用软件输入面板 简介 软件输入面板(SoftIM(IMENUMPROC);BOOL(CLSID*);BOOL(CLSID*); 我把这些放在开始,是因为它同时支持Proc(IMENUMINFO*pIMInfo){ CLSID*pCLSID=neemcpy(pCLSID,pIMInfo->clsid,sizeof(CLSID)); g_SipMap.SetAt(CString(pIMInfo->szName),pCLSID); TRACE(_T(%sn),CString(pIMInfo-&g
2、t;szName)); return1;}voidCSIPDemoDlg::OnButtonEnum(){ SipEnumIM(SipEnumIMProc); CStringsSipName; CLSID*pCLSID=NULL; for(POSITIONpos=g_SipMap.GetStartPosition();pos;) { g_SipMap.GetNextAssoc(pos,sSipName,pCLSID); m_SipList.AddString(sSipName); }} 代码所作的就是填充一个全局的map,它
3、包含了SIP名/CLSID对。这个例子和其他的都用到了MFC,当然你也可以使用熟悉的(SipEnumIMProc); CLSIDCurrSip; SipGetCurrentIM(CurrSip); intnCurrSip=LB_ERR,nSipCount=0; CStringsSipName,sCurrSipName; CLSID*pCLSID=NULL; for(POSITIONpos=g_SipMap.GetStartPosition();pos;) { g_SipMap.GetNextAssoc(pos,sSipName,
4、pCLSID); m_SipList.AddString(sSipName); if(memcmp(CurrSip,pCLSID,sizeof(CLSID))==0) { nCurrSip=nSipCount; sCurrSipName=sSipName; } nSipCount++; } m_SipList.SelectString(0,sCu123下一页——感谢阅读这篇文章,..,rrSipName);}voidCSIPDemoDlg::OnButtonSelect(){ intnSel=m_SipList.
5、GetCurSel(); if(LB_ERR==nSel) return; CStringsSipName; m_SipList.GetText(nSel,sSipName); CLSID*pCLSID=NULL; if(!g_SipMap.Lookup(sSipName,pCLSID)) return; BOOLbRes=SipSetCurrentIM(pCLSID); if(!bRes) TRACE(LSipSetCurrentIMreturned%lun,GetLastError());}voidCSIPDemoDlg
6、::OnButtonShooDlg::OnButtonShoemset(SipInfo,0,sizeof(SipInfo)); SipInfo.cbSize=sizeof(SIPINFO); BOOLbRes=SipGetInfo(SipInfo); if(bRes) { if(!g_bShop;SipInfo); } else { TRACE(LSipGetInforeturned%lun,GetLastError()); }} 这里,你可以看到修改的例子(CSIPDemoDlg::OnButtonEnum()),它检测哪
7、个SIP是被激活的并且选择listbox里相应的行。其他例子的对话框方法选择SIP并且显示或者隐藏它。注意,为了使得SipGetInfo或者SipSetInfo工作,你必须用sizeof(SIPINFO)的值初始化SIPINFO.cbSize,这样操作系统才能正常反应。这是一个很常用的_SETTINGCHANGE消息发送给所有运行的程序,所以系统将会因此而失去响应一段时间。将lParam值同时和_SETTINGCHANGE传递将会避免这样的延迟。 当说到shell函数时,有些_SETFOCUS和_KILLFOCUS进行处理。下面
8、的代码可以帮助你:voidCSipEdit::OnSetFocus(Cove(){上一页123下一页——感谢阅读这篇文章,..,SIPINFOSipInfo; memset(SipInfo,0,sizeof(SipInfo)); SipInfo.c