C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 122 - о CWinApp / MFC шаг за шагом / Visual C++

Шаг 122 - о CWinApp

CWinApp - это базовый объект из которого получается объект(программа) для Windows. CWinApp отвечает за инициализацию и запуск приложения Windows. Все приложения MFC используют этот класс, который может быть включен только один раз. Ваш объект производный от CWinApp должен быть объявлен на глобальном уровне.

При создании своего класса необходимо перегрузить функцию InitInstance.

Дополнительно к этому классу MFC обеспечивает еще ряд функций.

AfxGetAppПолучает указатель, но объект CWinApp
AfxGetInstanceHandleПолучает HINSTANCE указатель на текущее приложение
AfxGetResourceHandleПолучает HINSTANCE на текущие ресурсы
AfxGetAppNameПолучает указатель на строку с именем приложения

Объект CWinApp создается до создания окон. Этот класс создает поток выполнения Thread.

При использовании AppWizard генерируется класс производный от CWinApp и следующие функции в классе реализации:

  • Карта сообщений
  • Пустой конструктор класса
  • Переменная, которая объявляет класс
  • Стандартная инициализация в InitInstance
А вот самая маленькая программа, которая просто компилируется и запускается. Она создана как Win32 Application c подключением MFC и комментирование строки в stdafx.h
#define WIN32_LEAN_AND_MEAN		// Exclude rarely-used stuff from Windows headers
//#include 
// TODO: reference additional headers your program requires here
А вот и код. Как видите WinMain был благополучно устранен.
// Test.cpp : Defines the entry point for the application.
//

#include "stdafx.h"
#include "afxwin.h"

class CMyApp: public CWinApp
{
};

CMyApp theApp;
Функция InitInstance обязательно вызовется для того, чтобы создать окно. Проверим ???
// Test.cpp : Defines the entry point for the application.
//

#include "stdafx.h"
#include "afxwin.h"

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

BOOL CMyApp::InitInstance()
{
	MessageBeep(-1);
	return TRUE;
}

CMyApp theApp;

Комп бибикнет во время выполнения.


Загрузить проект | | |
Автор Каев Артем.
[AD]