📄 structure.cpp
字号:
#include "stdafx.h"
#include "resource.h" // main symbols
#include "structure.h"
Stack::Stack(int len)
{
if( len > MAXLEN )
len = MAXLEN;
m_iTotalLen = len;
// for(int i = 0; i < len; i ++)
// m_pStack = (HBITMAP*) malloc(m_iTotalLen * sizeof(BITMAP));
m_iCurLen = 0;
m_iCurPos = 0;
}
Stack::~Stack()
{
// for( int i = 0; i < m_iTotalLen; i++ )
// free(m_pStack);
}
void Stack::Add(HBITMAP element)
{
m_iCurLen = m_iCurPos;
if( m_iCurPos < m_iTotalLen )
{
Stock[m_iCurLen] = element;
m_iCurLen++;
m_iCurPos++;
}
else
{
for( int i = 0; i < m_iTotalLen - 1; i++ )
Stock[i] = Stock[i+1];
Stock[m_iTotalLen - 1] = element;
}
}
bool Stack::IsEmpty()
{
if(m_iCurLen == 0)
return true;
return false;
}
HBITMAP Stack::Undo()
{
ASSERT(m_iCurPos > 0);
int i=--m_iCurPos;
return Stock[i-1];
}
HBITMAP Stack::Redo()
{
ASSERT(m_iCurPos < m_iCurLen);
return Stock[m_iCurPos++];
}
bool Stack::CanUndo()
{
if( m_iCurPos > 1 )
return true;
return false;
}
bool Stack::CanRedo()
{
if( m_iCurPos < m_iCurLen )
return true;
return false;
}
HBITMAP Stack::Pop()
{
ASSERT(m_iCurPos > 0);
return Stock[m_iCurPos-1];
}
int Stack::GetLen()
{
return m_iCurLen;
}
int Stack::GetPos()
{
return m_iCurPos;
}
void Stack::Clear()
{
m_iCurLen = m_iCurPos = 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -