树形视图里设置定时器出现的问题.
我创建的是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;
//-----------------------------------------
}
大家帮忙看看.
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;
//-----------------------------------------
}
...全文
相关推荐
javascript实现树形菜单的方法
主要介绍了javascript实现树形菜单的方法,涉及javascript动态操作页面元素与节点属性的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
VC++树形控件与数据库连接的典型实例代码
VC++树形控件与数据库连接的典型实例代码,实现将数据库中的内容加入树型控件中,并通过建立数据库,再与树型控件相连,实现对数据库的访问,从而开发完成一款可以适时读取数据库的动态树形菜单控件。
【QT常用技术讲解】QTreeWidget实现树形筛选框(包含源码)
【QT常用技术讲解】QTreeWidget实现树形筛选框
VC 类似于 资源管理器界面
VC 实现类似于 资源管理器界面
Swing样式大全(全56种经典)
Swing样式大全(全56种经典)


