| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 774 人关注过本帖
标题:我设的定时器为什么没有用呀
只看楼主 加入收藏
tlby
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2011-10-21
收藏
 问题点数:0 回复次数:2 
我设的定时器为什么没有用呀
LRESULT CALLBACK WinSunProc(
  HWND hwnd,      // handle to window
  UINT uMsg,      // message identifier
  WPARAM wParam,  // first message parameter
  LPARAM lParam   // second message parameter
)
{
        PAINTSTRUCT ps;
        HDC hdc;
        static HICON Speople, Apoint, Bpoint;
        static POINT people;
        Speople=LoadIcon(hInst,MAKEINTRESOURCE(IDI_ICON3));
        Apoint=LoadIcon(hInst,MAKEINTRESOURCE(IDI_ICON1));
        Bpoint=LoadIcon(hInst,MAKEINTRESOURCE(IDI_ICON2));
    switch(uMsg)
    {
    case WM_CREATE:
        {
            people.x=23;
            people.y=23;
        }
        break;
    case WM_PAINT:
        {
        hdc=BeginPaint(hwnd,&ps);
        Hdc=BeginPaint(hwnd,&ps);
        DrawIcon(hdc,people.x,people.y,Speople);
        DrawIcon(hdc,53,23,Apoint);
        DrawIcon(hdc,800,23,Bpoint);

        while (people.x<=800)
        {
        people.x=people.x+30;
        DrawIcon(hdc,people.x,people.y,Speople);
        SetTimer(hwnd,1,1000,NULL);
        }

        EndPaint(hwnd,&ps);
        }
        break;
    case WM_CLOSE:
        KillTimer(hwnd,1);
        DestroyWindow(hwnd);
        break;
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    default:
        return DefWindowProc(hwnd,uMsg,wParam,lParam);
    }
    return 0;
}
为什么不是间隔1S出来一张图片?怎么一下子全出来了?这是为什么呀?本人菜鸟,求指点!
搜索更多相关主题的帖子: 定时器 message window people 
2011-10-25 21:30
yuccn
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:0 
case WM_PAINT:
        {
        hdc=BeginPaint(hwnd,&ps);
        Hdc=BeginPaint(hwnd,&ps);
        DrawIcon(hdc,people.x,people.y,Speople);
        DrawIcon(hdc,53,23,Apoint);
        DrawIcon(hdc,800,23,Bpoint);

        while (people.x<=800)
        {
        people.x=people.x+30;
        DrawIcon(hdc,people.x,people.y,Speople);
        SetTimer(hwnd,1,1000,NULL);
        }


你在这里已经是一次画出来了。你设置了定时器 ,不过你都没有用定时器,如果你要用定时器 就的响应WM_TIMER 消息。
启动计时器不应该WM_PAINT里面,在Create时候启动好点,如果在paint里面启动 ,最好就来个静态标记,启动一次吧。
,在比如,
 switch(uMsg)
    {
    case WM_CREATE:
       //SetTimer
    case WM_TIMER:
       //做你想做的事情, 比如更新界面的数据等。发送给跟新界面的消息就行了
    case WM_PAINT:
       //  更新界面
   

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2011-10-26 09:34
tlby
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2011-10-21
收藏
得分:0 
回复 2楼 yuccn
恩!多谢了!呵呵!刚学,还望多多照顾!
2011-10-26 11:17
快速回复:我设的定时器为什么没有用呀
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.059649 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved