purebasic.info

PureBasic forum
Текущее время: Ср окт 24, 2018 6:35 am

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
 Заголовок сообщения: Баг при свертывание окна
СообщениеДобавлено: Ср июн 06, 2018 8:17 am 
Не в сети
доцент

Зарегистрирован: Пн мар 05, 2018 4:49 am
Сообщений: 50
Благодарил (а): 4 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Например, есть окно приложения которое создается в OpenScreen, если это окно свернуть (alt+tab) то его больше не развернешь. Как сие баг решить?

Код в качестве примера.
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#Screen_Width = 1024
#Screen_Height = 768
#Screen_Title = "Game2D"
 
If InitSprite() = 0 Or InitKeyboard() = 0 Or OpenScreen(#Screen_Width,#Screen_Height,16,#Screen_Title) = 0
    MessageRequester("Error!", "Unable to Initialize Environment", #PB_MessageRequester_Ok)
    End
EndIf
 
TransparentSpriteColor(#PB_Default,RGB(255,0,255))
 
Repeat
    FlipBuffers()
    ExamineKeyboard()
    ClearScreen(RGB(0, 0, 0))
   
    Delay(10)
Until KeyboardPushed(#PB_Key_Escape)



Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Баг при свертывание окна
СообщениеДобавлено: Ср июн 06, 2018 8:59 am 
Не в сети
доцент

Зарегистрирован: Пн мар 05, 2018 4:49 am
Сообщений: 50
Благодарил (а): 4 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Нашел решение:
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
OnFullScreen("test")
If IsScreenActive() = 0 : FullScreenResume("test") : EndIf
Procedure OnFullScreen(ScreenTitle.S,ScreenFlipMode.I = #PB_Screen_WaitSynchronization)
    ExamineDesktops()
    ProcedureReturn OpenScreen(DesktopWidth(0),
        DesktopHeight(0),
        DesktopDepth(0),
        ScreenTitle,
        ScreenFlipMode,
    DesktopFrequency(0))
EndProcedure
 
Procedure FullScreenResume(ScreenTitle.S,ScreenFlipMode.I = #PB_Screen_WaitSynchronization,*StandBy = 0,DelayDuration.I = 16)
    Protected BackgroundWindow.I
    CloseScreen()
    BackgroundWindow = OpenWindow(#PB_Any,0,0,0,0,ScreenTitle,#PB_Window_BorderLess|#PB_Window_NoActivate)
    Repeat
        Delay(DelayDuration)
        If *StandBy
            CallFunctionFast(*StandBy)
        EndIf
    Until WindowEvent() = #PB_Event_ActivateWindow
    CloseWindow(BackgroundWindow)
    OnFullScreen(ScreenTitle, ScreenFlipMode)
EndProcedure



Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB