Как делали MFC - Испытания окна

В классе CWinApp у нас нет не одной функции кроме Run. Но перед тем как запускать циклы обработки ам надо настроить окно. Но есть нам нужна функция которая бы автоматически вызывалась для настройки окна. Вот мы ее и сделаем и назовем InitInstance. Мы ее объявим виртуальную все равно в реальном приложении ее будут перегружать.

class CWinApp  
{
	.........
	BOOL AfxWinInit(HINSTANCE hInst);		// настрока и инициализация приложения
	HINSTANCE m_hInstance;				// наш экзепляр
	.........
};

В нашем шаблоне она вернет TRUE. Но в реальности когда ее перегрузят это совсем не обязательно.

BOOL CWinApp::InitInstance()
{	
	return TRUE;
}

Ну а теперь эту функцию нужно вызвать при запуске Run. Если окно не будет создано зачем тогда запускать обработку сообщений.

int CWinApp::Run()
{
	if (!AfxGetApp()->InitInstance())
		return FALSE;		// если окно не создaно уходим
	.......
}

Ну все пора запускать.

// TestMyLib.cpp : Defines the entry point for the application.
//

#include "stdafx.h"
#include "HMFC\\WinApp.h"
#include "HMFC\\Wnd.h"			// подлючаем класс окно

#pragma comment(lib,"HMFC\\Debug\\HMFC.lib")   // там наш код библиотеки


class CMyApp : public CWinApp
{
public:
	BOOL InitInstance();
};

BOOL CMyApp::InitInstance()
{
	m_pMainWnd=new CWnd();			// новый обьект
	return m_pMainWnd->Create("AfxWin","Step1");	// создать
}

CMyApp CApp;

Оно работает. Даже не вериться.

gif/8_1.gif (1591 b)


Загрузить проект | Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 17.07.2001