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


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




 11 - Добавляем событие OnPaint, LButtonDbl и устанавливаем полноэкранный режим средствами MFC / Direct3D / Microsoft DirectX

Шаг 11 - Добавляем событие OnPaint, LButtonDbl и устанавливаем полноэкранный режим средствами MFC

Перейдем к конструктору CMainWnd при помощи Class View. Нажмем Properties (Свойства), если его у Вас нет нажмите клавишу F4. Посмотрите сначала, что выбран соответствующий класс (1), затем щелкните на Messages (Сообщения) (2), найдите при помощи прокрутки WM_PAINT и щелкните на выпадающий список (3), выберите OnPaint.

11_1.gif (4611 b)

Более подробно о назначении этого сообщения смотрите раздел MFC: "Шаг 10 - Рисуем в окне". Тем самым мы добавили сообщение к классу CMainWnd. Отредактируем его:

void CMainWnd::OnPaint()
{
	SetCursor(NULL);

	p_d3d_Device->Clear (0, NULL, D3DCLEAR_TARGET,
	D3DCOLOR_XRGB (color++, 0, 0), 0.0f, 0);

	p_d3d_Device->BeginScene ();
	p_d3d_Device->EndScene ();

	p_d3d_Device->Present (NULL, NULL, NULL, NULL);
}

В класс CMainWnd в public объявите переменную:

int color;

Запускаем. Получили тоже самое, что и "Шаг 3 - Покрасим фон", но средствами MFC. Сделаем полноэкранный режим. Для этого откроем конструктор класса CMainWnd:

CMainWnd::CMainWnd()
{ 
	Create(NULL, APPNAME,	// Создать окно программы
		WS_POPUP,
		rectDefault, NULL,NULL);

И укажем в ней WS_POPUP. Также перенесем объявление

D3DDISPLAYMODE d3ddm;

в класс окна CMainWnd в область private. В конструктор данного класса добавим строки после ZeroMemory:

d3dpp.BackBufferWidth = 1024;
d3dpp.BackBufferHeight = 768;
d3dpp.BackBufferCount = 3;
d3dpp.FullScreen_RefreshRateInHz = d3ddm.RefreshRate;

Далее ставим false:

d3dpp.Windowed = false;

и

d3dpp.BackBufferFormat = d3ddm.Format;

Добавим сообщение на двойной клик мышкой на закрытие окна, иначе нам не выйти из него... Выбираем теперь не WM_PAINT, а:

11_2.gif (552 b)

И переходим к редактированию:

void CMainWnd::OnLButtonDblClk(UINT nFlags, CPoint point)
{
	DestroyWindow();	// Уничтожить окно 
}

Запускаем и смотрим. Для выхода щелкните два раза на левую кнопку мышки.


Загрузить проект | | |
Автор Хавов Евгений Валерьевич.
[AD]