#pragma once

#define ID_BUTTON_16KPV_COLOR_MODE 51000
#define ID_BUTTON_16KPV_COLOR_MODE_END 51040
#define ID_BUTTON_16KPV_BW_MODE 51050
#define ID_BUTTON_16KPV_BW_MODE_END 51090
#define ID_BUTTON_16KPV_SPRITE 51100
#define ID_BUTTON_16KPV_SPRITE_END 51140
#define ID_BUTTON_16KPV_LOAD 51150
#define ID_BUTTON_16KPV_LOAD_END 51190
#define ID_BUTTON_16KPV_SAVE 51200
#define ID_BUTTON_16KPV_SAVE_END 51240

#define VW16K_BUTTON_X 2            //расстояние от края панели до кнопки по ширине
#define VW16K_BUTTON_Y 2            //расстояние от края панели до кнопки по высоте
#define VW16K_BUTTON_SPACE 4        //расстояние между кнопками
#define VW16K_BUTTON_HEIGHT 22      //высота кнопки
#define VW16K_BUTTON_WIDTH 24       //ширина кнопки
#define VW16K_BUTTONPAD_WIDTH 30    //ширина панели кнопок
// C16KPageView

class CScreen;

class C16KPageView : public CWnd
{
		DECLARE_DYNAMIC(C16KPageView)
		CScreen *m_pSprScr; //динамически создаваемое окно экрана
		BYTE *m_pBuffer; //указатель на отображаемый буфер в окне экрана
		size_t m_nBufSize; //размер этого буфера
		UINT m_nPageNum; //номер этого объекта, чтобы ID кнопок различались.

		CBitmapButton m_btnColorMode;
		CBitmapButton m_btnBWMode;
		CBitmapButton m_btnSprite;
		CBitmapButton m_btnSave;
		CBitmapButton m_btnLoad;
		bool m_bColorMode;
		bool m_bBWAdaptMode;
		CString m_strScrName; //имя окна экрана

	public:
		C16KPageView(BYTE *buffer, size_t size, UINT num, const CString &strName);
		virtual ~C16KPageView();
		void Draw16KView();

	protected:
		afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
		afx_msg void OnDestroy();
		afx_msg void OnViewColormode(UINT id);
		afx_msg void OnViewBWMode(UINT id);
		afx_msg void OnViewSprite(UINT id);
		afx_msg void OnSaveImg(UINT id);
		afx_msg void OnLoadImg(UINT id);
		DECLARE_MESSAGE_MAP()
};


