26.3.2 通过DrawIcon()函数实现图标动画
通过DrawIcon()函数实现图标动画的原理及方式和标题栏动画图标的实现是一样的,其区别仅在于在此定时器处理函数中,会使用DrawIcon()函数在指定位置显示指定索引处的图标。具体代码如下:
- BOOL CMainFrame::DrawNextIcon() // 绘制下一个图标
- {
- CDC* pDC = GetDC();
// 获取设备上下文 - // 定义图标数组
- char* dwIcons[] = {IDI_APPLICATION,IDI_ASTERISK,IDI_ERROR,
- IDI_EXCLAMATION,
- IDI_HAND,IDI_INFORMATION,IDI_QUESTION,
IDI_WARNING,IDI_WINLOGO}; - m_iIconCounter++;
// 图标计数变量 - if(m_iIconCounter >= 9) m_iIconCo unter =0;
// 如果大于指定值,归0 - // 装载图标
- HICON hIcon = LoadIcon(NULL, MAKEINTRESOURCE(dwIcons[m_iIcon
- Counter]));
- if (hIcon == NULL) return false;
// 判断装载结果 - CRect rect;
- GetClientRect(&rect);
// 获取工作区 - pDC->DrawIcon(rect.Width()/2, rect.Height()/2, hIcon);
-
// 在指定区域绘制新图标 - return true; // 函数成功返回
- }
上面代码会定时切换显示系统定义的图标,并通过DrawIcon()函数在屏幕的中间位置显示图标。运行时,会看到屏幕中间的图标在不停地变换,运行效果图如图26-3所示。
|
| 图26-3 通过DrawIcon实现图标动画运行效果图 |