📄 stack.h
字号:
//owner defined stack
class MYSTACK
{
/***********************************/
/***********************************/
/** 成员变量: **/
/***********************************/
/***********************************/
public:
HGLOBAL hMem;
POINT *lpMyStack;
LONG ElementsNum;
LONG ptr;
////////////////////////////////////////////////////////////////
BOOL InitStack(HWND hWnd,LONG StackLen)
{
ElementsNum=StackLen;
if((hMem=GlobalAlloc(GHND,ElementsNum*sizeof(POINT)))==NULL)
{
MessageBox( hWnd,"Error alloc memory!","ErrorMessage",MB_OK|
MB_ICONEXCLAMATION);
return FALSE;
}
lpMyStack=(POINT *)GlobalLock(hMem);
memset(lpMyStack,0,ElementsNum*sizeof(POINT));
ptr=0;
return TRUE;
}
////////////////////////////////////////////////////////////////
void DeInitStack()
{
GlobalUnlock(hMem);
GlobalFree(hMem);
ElementsNum=0;
ptr=0;
}
////////////////////////////////////////////////////////////////
BOOL MyPush(POINT p)
{
POINT *TempPtr;
if(ptr>=ElementsNum)
return FALSE;
TempPtr=(POINT *)(lpMyStack+ptr++);
(*TempPtr).x=p.x;
(*TempPtr).y=p.y;
return TRUE;
}
////////////////////////////////////////////////////////////////
POINT MyPop()
{
POINT InvalidP;
InvalidP.x=-1;
InvalidP.y=-1;
if(ptr<=0)
return InvalidP;
ptr--;
return *(lpMyStack+ptr);
}
////////////////////////////////////////////////////////////////
BOOL IsStackEmpty()
{
return (ptr==0)?TRUE:FALSE;
}
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -