MFC中使用STL的stack时出栈有关问题

MFC中使用STL的stack时出栈问题
我在stdafx.cpp中写stack<CString>stackstr;
然后在对话框类里加入extern stack<CString>stackstr;
入栈没问题,现在出栈出问题了

[code=C/C++][/code]
if(!stackstr.empty())
{
  m_strCurrText = stackstr.top();
stackstr.pop();
m_EDIT.SetWindowTextW(m_strCurrText);
}

/*说白了我就是用stack对编辑框里的文字实现撤销与重做功能,但是消息处理函数中stackstr.pop();明明执行了,而且调试的时候也出栈了,但是再次调用此消息处理函数的时候,栈又恢复到pop之前了,求解,求大神,谢谢了……*/
//VS2010,MFC Dialog

------解决方案--------------------
是不是别的地方又执行了入栈的操作。