📄 structure.cpp
字号:
#include "stdafx.h"
#include "structure.h"
Stack::Stack(int len)
{
if( len > MAXLEN )
len = MAXLEN;
m_iMaxLen = len;
m_iTotalLen = 0;
m_iCurPos = -1;
}
Stack::~Stack()
{
}
void Stack::Add(HBITMAP element)
{
m_iTotalLen = m_iCurPos+1;//新加一个动作时 就不允许Redo了
if( m_iTotalLen < m_iMaxLen)
{
Stock[++m_iCurPos] = element;
m_iTotalLen++;
}
else
{
for( int i = 0; i < m_iMaxLen - 1; i++ )
Stock[i] = Stock[i+1];
Stock[m_iMaxLen - 1] = element;
}
}
bool Stack::IsEmpty()
{
return(m_iTotalLen == 0);
}
HBITMAP Stack::Undo()
{
ASSERT(m_iCurPos > 0);
return Stock[--m_iCurPos];
}
HBITMAP Stack::Redo()
{
ASSERT(m_iCurPos+1 < m_iTotalLen);
return Stock[++m_iCurPos];
}
bool Stack::CanUndo()
{
return( m_iCurPos > 0 );
}
bool Stack::CanRedo()
{
return( m_iCurPos+1 < m_iTotalLen );
}
HBITMAP Stack::GetCurrent()
{
if (m_iCurPos>=0)
return Stock[m_iCurPos];
else
return NULL;
}
int Stack::GetLen()
{
return m_iTotalLen;
}
int Stack::GetPos()
{
return m_iCurPos;
}
void Stack::Clear()
{
m_iTotalLen = 0;
m_iCurPos = -1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -