#include <afxwin.h>
#include <string.h>
#include <time.h>

 	#include "resource.h"

class CMainWin: public CFrameWnd {
 	public:
 	CMainWin(CString Title, int HowShow = SW_RESTORE);
	afx_msg void OnPaint();
 	private:
 	// Объект битового образа
 	CBitmap *backgroundBitmap;
 	DECLARE_MESSAGE_MAP()
 	};

class CApp: public CWinApp {
 	public:
	BOOL InitInstance();
 	};
bool bflag= TRUE;
FILE *f;
CApp App;

BEGIN_MESSAGE_MAP(CMainWin, CFrameWnd)
ON_WM_PAINT()
END_MESSAGE_MAP()

CMainWin::CMainWin(CString Title, int HowShow)
{ backgroundBitmap=new CBitmap();
if (bflag) 	{backgroundBitmap->LoadBitmap(IDB_BITMAP1);}
else {backgroundBitmap->LoadBitmap(IDB_BITMAP2);}
 	// Прямоугольник, в котором должно разместиться окно.
 	RECT rect;
 	rect.top = 0;
 	rect.left = 0;
 	BITMAP bmp;
 	backgroundBitmap->GetBitmap(&bmp); 
 	// Определяем, чему должны быть равны размеры окна, 
 	// если размеры клиентской области должены быть 
 	// равны размерам картинки.
 	rect.right = 800;//rect.left + bmp.bmWidth + (GetSystemMetrics(SM_CXDLGFRAME) + GetSystemMetrics(SM_CXEDGE)) * 2;
 
 	rect.bottom = 600;//rect.top + bmp.bmHeight+ GetSystemMetrics(SM_CYCAPTION)+ (GetSystemMetrics(SM_CYDLGFRAME)+ GetSystemMetrics(SM_CYEDGE)) * 2; 
 
 	this->Create(0, Title, 
                         WS_OVERLAPPED | WS_CAPTION | WS_DLGFRAME 
                         | WS_SYSMENU | WS_MINIMIZEBOX, rect, 0, 0);
 
 	// Если не задана позиция окна, то центрируем его
 	//if(x0 < 0 || y0 < 0) 
 	this->CenterWindow();
 	this->ShowWindow(HowShow);
	this->UpdateWindow();
		 	}

 	afx_msg void CMainWin::OnPaint()
 	{ 
		delete backgroundBitmap;
		backgroundBitmap=new CBitmap();
		fscanf(f,"%d",&bflag);
		if (bflag) 	{backgroundBitmap->LoadBitmap(IDB_BITMAP1);}
	else {backgroundBitmap->LoadBitmap(IDB_BITMAP2);}
	//bflag=!bflag;

 	CPaintDC clientDC(this);
 	CDC memDC; // Контекст памяти
 	// Создать совместимый контекст памяти 
 	memDC.CreateCompatibleDC(&clientDC);
 	// Выбрать битовый образ в контекст устройства
 	memDC.SelectObject(backgroundBitmap);
 	// Получить характеристики битового образа в структуру BITMAP
 	BITMAP bmp;
 	backgroundBitmap->GetBitmap(&bmp); 
 	// Скопировать битовый образ из контекста памяти в контекст 
    // клиентской области окна
 
 	clientDC.BitBlt(0, 0, bmp.bmWidth, bmp.bmHeight, &memDC, 0, 
 							     0, SRCCOPY);
	clock_t start_time, cur_time;start_time = clock();while((clock() - start_time) < 3 * CLOCKS_PER_SEC){}
 	this->InvalidateRect(0);
	}
 
 	BOOL CApp::InitInstance()
 	{f=fopen("config.ini","r");
 	m_pMainWnd = new CMainWin("Вывод битового образа",
                                   SW_RESTORE); 
	//fclose(f);
 	return TRUE;
 	}

