读书人

关于MFC中的static的应用

发布时间: 2012-08-30 09:55:54 作者: rapoo

关于MFC中的static的使用!
在MFC中的OnCreate函数中,添加一个计时器:

SetTimer(1,500,NULL);//添加一个半秒钟执行一次的计时器。


在其相关的WM_TIMER消息响应函数中,添加代码如下:
void CMainFrame::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
static int icons[]={IDI_ICON1,IDI_ICON2,IDI_ICON3,IDI_ICON4};
static int index=0;
ChangeIcon(icons[index]);//本函数通过调用UINT型的ID来更改一个单文本文档的ICON。
index++;
if(index>3)
index=0;
CFrameWnd::OnTimer(nIDEvent);
}

于是问题就出现了,按道理说,每隔0.5s将执行一次上述OnTimer函数,也就是说,index将会被重复赋值为0,个人感觉单文档的ICON并不会发生变化,并且一直显示为IDI_ICON1的图像,但实际例子中却发生了变化(这个例子是抄书的)。

所以挺迷茫的,大家指正!


[解决办法]
static int index=0;
这句放到函数外面看看,也就是定义全局的
[解决办法]
检查ChangeIcon的实现对不对

读书人网 >VC/MFC

热点推荐