想了一下~~只实现一个蓝屏挺没有意思的
需要加点工,自己也玩玩~~
最后决定,让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了~~