哪位大哥帮我编个小程序啊,关键的那部分编出来就行了,我刚开始不会具体题目是在窗口中使用定时器每隔一秒,交替用红色,绿色,蓝色的画刷填充整个窗口用户区。

解决方案 »

  1.   

    大致写了以下,应该差不多了
    SetTimer(0,1000,NULL);//开启一个1秒的定时器在OnTimer中调用
    static int i=0;
    CDC *pDC=GetDC();
    CRect rc;
    GetCilentRect(&rc);
    if(i%3==0)
    {
      pDC->FillRect(0,0,rc.Width(),rc.Hegiht(),RGB(255,0,0));
    }
    else if(i%3=1=)
    {
    pDC->FillRect(0,0,rc.Width(),rc.Hegiht(),RGB(0,255,0));
    }
    else  if(i%3==2)
    {
    pDC->FillRect(0,0,rc.Width(),rc.Hegiht(),RGB(0,0,255));
    }
    i++;
      

  2.   

    OnTimer:static int i=0; 

    HBRUSH brush[3];
    brush[0] = ::CreateSolidBrush(RGB(255 , 0 , 0));
    brush[1] = ::CreateSolidBrush(RGB(0 , 255 , 0));
    brush[2] = ::CreateSolidBrush(RGB(0 , 0 , 255)); if(i % 2 == 0) 

    SetClassLong(m_hWnd , GCL_HBRBACKGROUND , (long)brush[0]);
    Invalidate();
    }
    else if(i % 2 == 1) 

    SetClassLong(m_hWnd , GCL_HBRBACKGROUND , (long)brush[1]);
    Invalidate();

    else  if(i % 2 == 2) 

    SetClassLong(m_hWnd , GCL_HBRBACKGROUND , (long)brush[2]);
    Invalidate();

    i++;