2015-08-06 4 views
1

Я пишу программу, и я хочу ее будет отображаться даже в верхней части игры, работающей в полноэкранном режиме(как встречный удар).Как сохранить окно поверх запущенной игры?

Я использую Visual Basic в качестве языка программирования. Каждая помощь приветствуется.

+0

Исследование, проведенное до сих пор? –

+1

Спасибо, что ответили @roryap! Я искал Google (конечно) и другие форумы. Но ... К сожалению, я пока не могу найти что-либо. – Kanellis

+0

http://stackoverflow.com/questions/8543765/bring-vb-net-window-on-top-of-all-windows – jhegeman2

ответ

-1

Это не так сложно. Вам просто нужно прочитать this question's answer.

Самый простой способ сделать верхнюю часть окна - указать флаг WS_EX_TOPMOST при создании окна. .NET Framework скрывает большую часть работы по созданию окна за кулисами, но вы можете настроить параметры, когда вам нужно, переопределяя CreateParams property вашего класса формы.

Вот код:

Protected Overrides ReadOnly Property CreateParams() As CreateParams 
    Get 
     Const WS_EX_TOPMOST As Integer = &H00000008 

     Dim cp As CreateParams = MyBase.CreateParams 
     cp.ExStyle = cp.ExStyle Or WS_EX_TOPMOST 
     Return cp 
    End Get 
End Property 

Но в любом случае, потому что это не будет работать. Это нехорошее решение, как я сказал jhegeman2.

+1

Жду вашего ответа! – Kanellis

+0

Я думаю, что нет решения ... Как _Rudedog2_ сказал [здесь] (https://social.msdn.microsoft.com/Forums/vstudio/en-US/b1560ec2-1503-4ed7-ac9e-ea61b18805cc/show-form- over-full-screen-game-window? forum = vbgeneral): '' Если вы не запускаете свои игры в оконном режиме, у вас будут проблемы. Большинство игр полностью захватывают дисплей и всплывают окна на самом деле вариант без него, дающий окна обратно на дисплей. Возможно, вам удастся нарисовать свой собственный, но он будет конкурировать с игрой для отображения на экране. "' – Drarig29

+0

[Здесь] (http://stackoverflow.com/questions/9243748/ vb-application-on-top-of-game/9244289 # 9244289) - еще один хороший ответ. Существует также возможная альтернатива: создание наложения DirectX, как то, что делает Steam. Есть несколько вопросов по этому поводу: [stackoverflow.com/questions/3549004/...](http://stackoverflow.com/questions/3549004/fullscreen-directx-overlay-yes-again-c-sharp) [stackoverflow.com /questions/2649702/...](http://stackoverflow.com/questions/2649702/c-sharp-hook-overlay-a-directx-game). – Drarig29