Полноэкранное приложение под .NET
От: Аноним  
Дата: 25.04.07 08:44
Оценка:
Задача следующая — есть приложение написаное на Managed C++, которое должно работать в полноэкранном режиме 800х600.
Как средствами .NET переключить экранное разрешение в этот режим ?

25.04.07 15:23: Перенесено модератором из '.NET' — Хитрик Денис
Re: Полноэкранное приложение под .NET
От: _Morpheus_  
Дата: 25.04.07 09:57
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Задача следующая — есть приложение написаное на Managed C++, которое должно работать в полноэкранном режиме 800х600.

А>Как средствами .NET переключить экранное разрешение в этот режим ?

точно также как и в C++
... << RSDN@Home 1.2.0 alpha rev. 676>>
Re[2]: Полноэкранное приложение под .NET
От: _Morpheus_  
Дата: 25.04.07 10:01
Оценка:
    Microsoft.Direct3D.Device device = ...;

    PresentParameters presentParams = new PresentParameters();
    presentParams.Windowed = false;
    presentParams.SwapEffect = SwapEffect.Discard;
    presentParams.BackBufferFormat = Format.A8R8G8B8;
    presentParams.BackBufferCount = 1;
    presentParams.BackBufferWidth = 640;
    presentParams.BackBufferHeight = 480;
    presentParams.PresentationInterval = PresentInterval.One;

    device.Reset(presentParams);
... << RSDN@Home 1.2.0 alpha rev. 676>>
Re[3]: Полноэкранное приложение под .NET
От: Sidorovich  
Дата: 25.04.07 12:13
Оценка:
Здравствуйте, _Morpheus_, Вы писали:

_M_>
_M_>    Microsoft.Direct3D.Device device = ...;

_M_>    PresentParameters presentParams = new PresentParameters();
_M_>    presentParams.Windowed = false;
_M_>    presentParams.SwapEffect = SwapEffect.Discard;
_M_>    presentParams.BackBufferFormat = Format.A8R8G8B8;
_M_>    presentParams.BackBufferCount = 1;
_M_>    presentParams.BackBufferWidth = 640;
_M_>    presentParams.BackBufferHeight = 480;
_M_>    presentParams.PresentationInterval = PresentInterval.One;

_M_>    device.Reset(presentParams);
_M_>

Дык, такой способ я знаю. Но интересуют все же средства именно дотнет. А привлекать к такой операции D3D или DDraw как-то не хочется
Re[4]: Полноэкранное приложение под .NET
От: _Morpheus_  
Дата: 25.04.07 14:16
Оценка:
Здравствуйте, Sidorovich, Вы писали:

_M_>>
_M_>>    Microsoft.Direct3D.Device device = ...;

_M_>>    PresentParameters presentParams = new PresentParameters();
_M_>>    presentParams.Windowed = false;
_M_>>    presentParams.SwapEffect = SwapEffect.Discard;
_M_>>    presentParams.BackBufferFormat = Format.A8R8G8B8;
_M_>>    presentParams.BackBufferCount = 1;
_M_>>    presentParams.BackBufferWidth = 640;
_M_>>    presentParams.BackBufferHeight = 480;
_M_>>    presentParams.PresentationInterval = PresentInterval.One;

_M_>>    device.Reset(presentParams);
_M_>>

S> Дык, такой способ я знаю. Но интересуют все же средства именно дотнет. А привлекать к такой операции D3D или DDraw как-то не хочется

что значит средства дотнет?
Вы знаете способ реализовать нормальный полноэкранный режим без DirectX?
... << RSDN@Home 1.2.0 alpha rev. 676>>
Re[5]: Полноэкранное приложение под .NET
От: Arks Россия  
Дата: 25.04.07 15:14
Оценка: 5 (1)
Здравствуйте, _Morpheus_, Вы писали:

_M_>что значит средства дотнет?

_M_>Вы знаете способ реализовать нормальный полноэкранный режим без DirectX?

Конечно
Используйте структуры DEVMODE

DEVMODE dmScreenSettings;               // Device Mode
                // Size Of The Devmode Structure
                dmScreenSettings.dmSize = sizeof(dmScreenSettings);
                dmScreenSettings.dmPelsWidth = width;                           // Selected Screen Width
                dmScreenSettings.dmPelsHeight = height;                         // Selected Screen Height
                dmScreenSettings.dmBitsPerPel = bits;                           // Selected Bits Per Pixel
                dmScreenSettings.dmFields = DM_BITSPERPEL | DM_PELSWIDTH | DM_PELSHEIGHT;

                if(ChangeDisplaySettings(ref dmScreenSettings, User.CDS_FULLSCREEN) != DISP_CHANGE_SUCCESSFUL) {
                    // If The Mode Fails
                    ...                               
                    }


Что-то подобное. В .NET это тоже должны быть где-нибудь. Даже если нет его, то mc++ позволяет использовать нативный код.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.