📄 subject_45558.htm
字号:
<p>
序号:45558 发表者:软体狂人 发表日期:2003-07-01 18:17:38
<br>主题:为什么计时器会停止?
<br>内容:为了理解计时器,我编了一个小程序,程序启动后每隔一秒钟显示计数加一次:<BR><BR>WinMain函数略<BR><BR>LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)<BR>{<BR> HDC hdc ;<BR> TCHAR szBuffer[100];<BR> static int count;<BR><BR> case WM_CREATE:<BR> SetTimer(hwnd,1,1000,NULL); <BR> return 0 ;<BR> case WM_TIMER:<BR> count++; <BR> hdc=GetDC(hwnd);<BR> TextOut(hdc,100,100,szBuffer,wsprintf(szBuffer,TEXT("%i"),count));<BR> ReleaseDC(hwnd,hdc);<BR> return 0;<BR> ……<BR>}<BR><BR>程序运行良好,但是当中如果我按住左键不放,拖住该程序窗口的标题栏一会儿,然后再释放左键,我发现这期间计时器似乎没有工作,因为这期间计数值根本没有增加,是怎么一回事呢?<BR><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>回复者:shenjie 回复日期:2003-07-01 18:22:47
<br>内容:由于你在拖标题栏的时候,程序的消息循环被阻塞,所以不能处理WM_TIMER消息,同时,由于WM_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>
回复者:lijb 回复日期:2003-07-01 19:51:05
<br>内容:是的,WM_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>
回复者:撒达姆的大表弟 回复日期:2003-07-01 22:00:41
<br>内容:楼上说的很有道理,你试试处理一下WM_LBUTTONDOWN和WM_LBUTTONUP和WM_MOUSEMOVE这几个消息,让他返回0 啥也不做看看行不?
<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 + -