窗体颜色渐变效果实现

来源:互联网 发布:npc什么意思网络语言 编辑:程序博客网 时间:2024/05/15 15:10

想了一下~~只实现一个蓝屏挺没有意思的
需要加点工,自己也玩玩~~
最后决定,让RGB中的蓝色值变化,出现渐变的效果
首先想到需要一个时间发生器,在google上面搜索了一下,找到了SetTimer函数,在MSDN里面是这样描述的:
UINT_PTR SetTimer(      

    HWND hWnd,
    UINT_PTR nIDEvent,
    UINT uElapse,
    TIMERPROC lpTimerFunc
);
赫赫~~没有看明白怎么用…………,最后还是在google上面找了个实例才明白是个什么东西
eg:SetTimer(hWnd, ID_TIMER ,100, NULL);
这里就是设置为向当前窗体的消息函数中每100毫秒发送一个WM_TIMER消息,这个时间发生器的ID是ID_TIMER
用完它的时候一定要记得扫尾,用KillTimer(hWnd,ID_TIMER);把它给删除了…………
接下来又出了个郁闷的问题,蓝色值改变之后,窗体没有因为WM_PAINT消息而刷新…………没有重绘…………
看来是我自己的理解错误了……
又用google觅了一阵,找到了重绘的函数:InvalidateRect
BOOL InvalidateRect(
  HWND
hWnd,           // handle to window
  CONST RECT* lpRect// rectangle coordinates
  BOOL bErase          // erase state
);

 这个东西用起来不难~~~重新整理了一下代码~终于OK了~~

原代码下载

原创粉丝点击