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 руб./мес


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




 19 - Full Screen + MFC / Open GL / Графика

Шаг 19 - Full Screen + MFC

Попробуем теперь сделать полноэкранное приложение.

Для упрощения жизни возьмем пример из шага 16, там где мы рисовали 5 точек. Как вы помните для установки полноэкранного режима необходимо заполнить некоторые поля структуры DEVMODE. Сделаем эти установки в функции PreCreateWindow класса CMainFrame:

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
	if( !CFrameWnd::PreCreateWindow(cs) )
		return FALSE;
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	cs.x = cs.y = 0;
	cs.cx = GetSystemMetrics(SM_CXSCREEN);
	cs.cy = GetSystemMetrics(SM_CYSCREEN);
	cs.style = WS_POPUP;
	cs.hMenu = NULL;

	DEVMODE dmScreenSettings;

	memset(&dmScreenSettings, 0, sizeof(DEVMODE));
	dmScreenSettings.dmSize			= sizeof(DEVMODE);
	dmScreenSettings.dmPelsWidth	= GetSystemMetrics(SM_CXSCREEN);
	dmScreenSettings.dmPelsHeight	= GetSystemMetrics(SM_CYSCREEN);
	dmScreenSettings.dmFields		= DM_PELSWIDTH | DM_PELSHEIGHT;
	ChangeDisplaySettings(&dmScreenSettings, CDS_FULLSCREEN);

	return TRUE;
}

Практически все здесь взято из полноэкраного примера на Win32 API.

В функцию OnClose того же класса добавим стоку, восстанавливающую все настройки:

void CMainFrame::OnClose() 
{
	// TODO: Add your message handler code here and/or call default
	ChangeDisplaySettings(NULL, 0);
	
	CFrameWnd::OnClose();
}

Вот и все. Соберите этот проект. Выйти из програмки можно нажав Alt+F4. При желании можно добавить сюда выход по нажанию какой-нибудь другой клавиши.

Шпаргалка

  1. Создать проект из шага 16.
  2. Сделать изменения в CMainFrame::PreCreateWindow.
  3. Добавить обработчик WM_CLOSE в классе CMainFrame и восстанавливать все установки по умолчанию.
  4. При желании добавить еще что-нибудь.

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