📄 subject_35754.htm
字号:
<p>
序号:35754 发表者:cdyw 发表日期:2003-04-09 10:55:21
<br>主题:listview里计时器为什么不起作用
<br>内容: 用VC生成一SDI,视继承的是Clistview,WM_CREATE建立一个计时器(settimer(1,500,NULL)),WM_TIMER响应,运行后,结果只响应2次,再没反应。<BR> 如果视继承的Cview,响应就正常。<BR> 哪位高手知道。先谢谢了<BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:harryluk 回复日期:2003-04-09 18:23:40
<br>内容:你在timer里干什么了?timer事件的优先级很低,如果你总是有事情做的话timer就会无限期推迟了。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:cdyw 回复日期:2003-04-09 19:23:29
<br>内容:谢谢harryluk<BR><BR>我检查一个文件的修改时间,如果时间改变,就读文件数据,并显示。如果视继承的Cview,就没问题呀
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:cdyw 回复日期:2003-04-09 19:27:53
<br>内容:又:<BR><BR> 我后来就只生成SDI,视继承Clistview,建一个WM_CREATE,WM_TIMER,其他什么都没做,还是只响应两次,WHY?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:harryluk 回复日期:2003-04-09 21:10:21
<br>内容:恩,先不说为什么,你把CListView::OnTimer去掉就可以了,或者把timer拿到MainFrame里去做也可以。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:Eddie 回复日期:2003-04-10 13:53:01
<br>内容:第1楼 那也算正确答案?<BR>看我的吧!<BR><BR>在头文件中添加如下声明如下:<BR>static void CALLBACK TimerProc(HWND hWnd,UINT uMsg,UINT nIDEvent,DWORD dwTime);<BR><BR>在实现文件中添加TimerProc的定义如下:<BR>void CMySDIView::OnTimer(UINT nIDEvent) <BR>{<BR> // TODO: Add your message handler code here and/or call default<BR> if(nIDEvent==1)<BR> {<BR> TRACE("nIDEvent==%d\n",nIDEvent);<BR> }<BR> CListView::OnTimer(nIDEvent);<BR>}<BR><BR>void CALLBACK CMySDIView::TimerProc(HWND hWnd,UINT uMsg,UINT nIDEvent,DWORD dwTime)<BR>{<BR> CMySDIView *pView=(CMySDIView *)CWnd::FromHandlePermanent(hWnd);<BR> if(uMsg ==WM_TIMER && pView &&<BR> pView->IsKindOf(RUNTIME_CLASS(CMySDIView)) && nIDEvent==1)<BR> {<BR> pView->OnTimer(nIDEvent);<BR> }<BR>}<BR><BR>int CMySDIView::OnCreate(LPCREATESTRUCT lpCreateStruct) <BR>{<BR> if (CListView::OnCreate(lpCreateStruct) == -1)<BR> return -1;<BR> <BR> // TODO: Add your specialized creation code here<BR> SetTimer(1,50,TimerProc);<BR> <BR> return 0;<BR>}<BR><BR>把分还给我!!!<BR>开个玩笑!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:cdyw 回复日期:2003-04-10 21:15:27
<br>内容:谢谢eddie
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -