在我的项目里,使用到POPUP LIST.用户选择下拉的箭头,弹出LIST ,然后从LIST 选择某项内容,那么该内容就会显示在屏幕上,同时消失LIST .
正常的情况下.在LIST 出现的时候,只要点击一下LIST某一项,那么LIST 马上就会消失,同时把选择的内容显示在屏幕上. 现在我遇到了个问题是,当LIST 出现了,我要点两下,LIST 才会消失.
另外我的LIST 和 Popup trigger 是动态创建的,也就是如下的代码.
CtlNewControl ((void**)&frmP,StrAToI(Current_QUE_ID)*10+i,popupTriggerCtl,Answer_Value,5,y,150,FntLineHeight(),stdFont, 0, true);
LstNewList ((void**)&frmP,StrAToI(Current_QUE_ID)*10+5+i,5,y,150,80,stdFont,0,StrAToI(Current_QUE_ID)*10+i);
ListP=FrmGetObjectPtr(frmP,FrmGetObjectIndex(frmP,StrAToI(Current_QUE_ID)*10+5+i));
于是我就尝试着跟踪程序里的出现事件,结果发现第一下点击的时候,在APPEVENTLOOP 里捕获不到该事件,一直要再点击一下,才会出先PENDOWN EVENT ,接着是WINENTER , POPUPSELECT 等等一系列的事件.
正常的情况下.在LIST 出现的时候,只要点击一下LIST某一项,那么LIST 马上就会消失,同时把选择的内容显示在屏幕上. 现在我遇到了个问题是,当LIST 出现了,我要点两下,LIST 才会消失.
另外我的LIST 和 Popup trigger 是动态创建的,也就是如下的代码.
CtlNewControl ((void**)&frmP,StrAToI(Current_QUE_ID)*10+i,popupTriggerCtl,Answer_Value,5,y,150,FntLineHeight(),stdFont, 0, true);
LstNewList ((void**)&frmP,StrAToI(Current_QUE_ID)*10+5+i,5,y,150,80,stdFont,0,StrAToI(Current_QUE_ID)*10+i);
ListP=FrmGetObjectPtr(frmP,FrmGetObjectIndex(frmP,StrAToI(Current_QUE_ID)*10+5+i));
于是我就尝试着跟踪程序里的出现事件,结果发现第一下点击的时候,在APPEVENTLOOP 里捕获不到该事件,一直要再点击一下,才会出先PENDOWN EVENT ,接着是WINENTER , POPUPSELECT 等等一系列的事件.