在WM_TIMER 消息响应函数OnTimer()中编写实现轮流显示
图标的方法
void CMy12Dlg::OnTimer(UINT nIDEvent)
{
if(i<=1)//限制循环次数
{
::SendMessage(m_hWnd,WM_SETICON,0,(long)hh[i++]);
//发送设置图标消息到窗口
}
else //如果限制次数失败,则初始化变量
{
i=0;//为变量赋值0
}
CDialog::OnTimer(nIDEvent);
}
在上面的代码中
用户首先对变量i进行判断
如果i大于图标资源个数
则初始化i为0
否则将变量加1
然后向窗口发送消息设置窗口图标
图标个数为2,i<=1 i可以等于0
应用程序通过WM_TIMER消息的响应函数就可以让窗口的
图标动起来。在程序中,
设置程序窗口的图标是通过向窗口发送WM_SETICON消息
而该消息的附加值lParam为图标资源的句柄
启动窗口后,图标变化
窗口的图标随着事件的变化而变化
实际上,图标的动作主要依赖于计算机中的定时器
其每隔一秒调用一次消息响应函数
而用户则在该消息响应函数中发送WM_SETICON消息到窗口设置图标
因为人眼对事物的滞留效应
所以会让用户感觉图标在移动