树形视图里设置定时器出现的问题.

abuseyoudna1981 abuseyoudna1981 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我创建的是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;
//-----------------------------------------

}
...全文

相关推荐

评论 6
收藏 已收藏
分享
返回顶部
abuseyoudna1981
VC/MFC 16,550 成员 421,606 内容