基本思路
#pragma once
#include struct IPainter
{
void Paint() {}
};
class Element
{
void SetPainterState(int dwState, IPainter* pPainter)
{
m_mapStatePainter[dwState]=pPainter;
if(dwState==m_dwState)
{
GoToState(dwState);
}
}
IPainter* GetPainterState(int dwState)
{
return m_mapStatePainter[m_dwState];
}
int GetState()
{
return m_dwState;
}
void GoToState(int dwState)
{
m_dwState=dwState;
//InvalidateRect();
}
void Paint()
{
m_mapStatePainter[m_dwState]->Paint();
}
private:
int m_dwState;
std::map<int,IPainter*> m_mapStatePainter;
};
Original: https://www.cnblogs.com/Clingingboy/p/3435601.html
Author: Clingingboy
Title: 控件保持多种绘图状态的做法
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/551439/
转载文章受原作者版权保护。转载请注明原作者出处!