树形视图里设置定时器出现的问题.
我创建的是SDI,视图选择了CTreeView,我想在双击树形视图某项的时候,启动一个定时器,结果发现,定时器执行的函数并不是按照我定下的时间去执行,我搞不懂为什么会这样.真不明白,不管我设置多长时间,它还是按照某一固定时间去启动.
大家帮忙看看.
void CMyIMView::OnTimer(UINT nIDEvent){
//change image here
int temp1;
temp1=a;
a=b;
b=temp1;
//
if(num==0) {
KillTimer(abc);
i=0;
}
for(int count=0;count<num;count++){
if(i==0){
i=20;
char* s="type.wav";
sndPlaySound(s,SND_ASYNC);
}
CRect itemrect;
GetTreeCtrl().SetItemImage(tip[count],a,b); //改变ITEM的图片
GetTreeCtrl().GetItemRect(tip[count],&itemrect,FALSE);
InvalidateRect(&itemrect,FALSE);
i--;
}
}
void CMyIMView::OnLButtonDblClk(UINT nFlags, CPoint point){
CString ok;
temp=GetTreeCtrl().GetSelectedItem();
if(temp==GetTreeCtrl().GetRootItem()){ //如果双击根目录,则执行树形视图原来的双击处理
CTreeView::OnLButtonDblClk(nFlags,point);
return;
}
//-----------------------------------------这里只是作测试用,以后要改写
for(int count=0;count<num;count++){ //如果该项正在闪动,取消闪动
if(temp==tip[count]){
CRect rect;
GetTreeCtrl().GetItemRect(tip[count],&rect,FALSE);
GetTreeCtrl().SetItemImage(tip[count],3,3);
InvalidateRect(&rect,FALSE);
for(count;count<num-1;count++){
tip[count]=tip[count+1];
}
num--;
return;
}
}
tip[num++]=temp;
if(bStart) return;
SetTimer(abc,5000,NULL);
bStart=TRUE;
return;
//-----------------------------------------
}