【#文档大全网# 导语】以下是®文档大全网的小编为您整理的《Visual C++图标使用详细代码》,欢迎阅读!
【例Ex_Icon】图标使用
① 用MFC AppWizard(exe)创建一个默认的单文档应用程序Ex_Icon。 ② 添加4个图标资源,单击“新建设备图像”按钮
,选择“小的(16 x 16)”设备类型,保留图标资源默认的ID号:
IDI_ICON1~ IDI_ICON4,制作如图12.5所示的图标。
③ 为CMainFrame类添加一个成员函数ChangeIcon,用来切换应用程序的图标。该函数的代码如下:
void CMainFrame::ChangeIcon(UINT nIconID)
{ HICON hIconNew = AfxGetApp()->LoadIcon(nIconID); HICON hIconOld = (HICON)GetClassLong(m_hWnd, GCL_HICON); if (hIconNew != hIconOld){ DestroyIcon(hIconOld); SetClassLong(m_hWnd, GCL_HICON, (long)hIconNew); RedrawWindow(); // 重绘窗口 }
}
图12.5 创建的四个图标
④ 在CMainFrame::OnCreate函数的最后添加计时器设置代码:
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CFrameWnd::OnCreate(lpCreateStruct) == -1) return -1; //... SetTimer(1, 500, NULL); return 0; }
⑤ 用MFC ClassWizard为CMainFrame类添加WM_TIMER的消息映射函数,并增加下列代码:
void CMainFrame::OnTimer(UINT nIDEvent) { static int icons[] = { IDI_ICON1, IDI_ICON2, IDI_ICON3, IDI_ICON4}; static int index = 0; ChangeIcon(icons[index]); index++; if (index>3) index = 0; CFrameWnd::OnTimer(nIDEvent); }
⑥ 用MFC ClassWizard为CMainFrame类添加WM_DESTROY的消息映射函数,并增加下列代码:
void CMainFrame::OnDestroy() { CFrameWnd::OnDestroy(); KillTimer(1); }
⑦ 编译并运行。可以看到任务栏上的按钮以及应用程序的标题栏上4个图标循环显示的动态效果,显示速度为每秒2帧。
本文来源:https://www.wddqxz.cn/247d5ea376a20029bc642d68.html