让程序的图标动起来
?牐犜诒嘈闯绦蛑埃颐窍壤戳私庖幌露脑怼4蠹叶贾蓝抢檬泳跹邮痹碛梢环蔡耐枷窬シ哦鹄吹模虼宋颐侵恍枰殉绦虻耐急瓴煌5匕匆欢ㄊ奔浼涓舯浠痪托辛耍ㄍ急甑氖亢图涓羰奔涫幽愕男枰ǎ?。主要要做的工作有:1.画出多个图标;2.设置计时器让程序每隔一定时间自动变换图标。下面就让我们一步一步地实现程序。
?牐犑紫龋舳疺C++ 6.0,使用MFC AppWizard(exe)新建一个名为Sample的工程,在这里我们以多文档应用程序为例,在AppWizard中不改变默认值,直接按Finish按钮即可。接下来,在WorkSpace中选中ResourceView,添加3个图标,其ID为IDI_ICON1、IDI_ICON2、IDI_ICON3,图标的内容分别为字母A、B、C。
?牐牻酉吕矗贑MainFrame类中定义两个私有成员数据。其中,m_ahIcon数组用于存放3个图标的句柄,m_nPos用来指示当前应该使用的图标的句柄在m_ahIcon中的位置:
?牐燞ICON m_ahIcon[3];?牔?
?牐爄nt m_nPos;??
?牐牭谌轿颐窃贑MainFrame::OnCreate成员函数中将图标的句柄装入m_ahIcon数组并初始化m_nPos同时将程序在任务栏上的图标设为第一个图标:
?牐爄nt CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
?牐?..............
?牐爉_haIcon[0] = AfxGetApp()->LoadIcon(IDI_ICON1);
?牐爉_haIcon[1]= AfxGetApp()->LoadIcon(IDI_ICON2);
?牐爉_haIcon[2]= AfxGetApp()->LoadIcon(IDI_ICON3);
?牐爉_nPos = 0;
?牐燬etIcon(m_haIcon [m_nPos++]TRUE);?牔?
?牐爎eturn(0)?牔?
?牐牓牐?
?牐牭谒牟剑颐切枰肅lassWizard为CMainFrame类生成一个消息响应函数OnTimer以便接收WM_TIMER消息,OnTimer函数的功能是循环地更换并显示3个图标:
?牐爒oid CMainFrame::OnTimer(UINT nIDEvent)
?牐牐?
?牐爄f(m_nPos==3)??
?牐爉_nPos = 0;??
?牐燬etIcon(m_haIcon [m_nPos++]TRUE);
?牐燙MDIFrameWnd::OnTimer(nIDEvent);?牔?
?牐牓牐?
?牐牭谖宀剑贑MainFrame::OnCreate函数中设置一个计时器,使程序每隔1000毫秒自动调用OnTimer函数改变一次图标:
?牐燬etTimer(1,1000,NULL);?牔?
?牐犠詈蟛灰怯肅lassWizard为CMainFrame类生成DestroyWindow函数,以便程序退出时取消计时器:
?牐燘OOL CMainFrame::DestroyWindow?煟?
?牐牐?
?牐燢illTimer(1);?牔?
?牐爎eturn CMDIFrameWnd::DestroyWindow?煟牔?
?牐牓牐?
?牐犠鐾晟厦娴墓ぷ鳎颐蔷涂梢栽诵谐绦蛄恕G疲绦虻耐急暾娴亩鹄戳恕?