关于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的实现对不对