purebasic.info

PureBasic forum
Текущее время: Пн июл 22, 2019 7:19 pm

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




Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
 Заголовок сообщения: Как деактивировать окно
СообщениеДобавлено: Ср июл 03, 2019 8:43 am 
Не в сети
профессор

Зарегистрирован: Вт май 13, 2014 4:12 am
Сообщений: 849
Благодарил (а): 87 раз.
Поблагодарили: 24 раз.
Пункты репутации: 5
есть вспомагательное окно
Код:
1
2
3
4
5
6
OpenWindow(#W1, 0, 0, 0, 0, "", #PB_Window_Invisible)
OpenWindow(#W2, 0, 0, 0, 0, "", #PB_Window_BorderLess, WindowID(#W1))
StickyWindow(#W2, #True)
DisableWindow(#W1, #True)
DisableWindow(#W2, #True)
HideWindow(#W1, 1, #PB_Window_NoActivate)


дальше рабочее окно создаётся

как это вспомагательное окно деактивировать так, чтобы оно вообще не активировалось?
окно не кликается, это невозможно
но оно активируется в момент загрузки в него картинки, картинка ставится фоном
Код:
1
2
3
4
5
Procedure canMove(im); фоном ложим картинку в окно
activeWin(0)
SetClassLongPtr_(WindowID(#W2), #GCL_HBRBACKGROUND, CreatePatternBrush_(im))
InvalidateRect_(WindowID(#W2), 0, 1)
EndProcedure


и активируется во время ресайза по координатам
приходится на каждый чих возвращать активацию главному окну
Код:
1
2
3
4
5
Procedure activeWin(a=1)
HideWindow(#W2, a, #PB_Window_NoActivate)
ShowWindow_(WindowID(#W), #SW_SHOW)
SetForegroundWindow_(WindowID(#W))
EndProcedure


в итоге видно как винда пытается перерисовать заголовок главного окна, происходит это непредсказуемо, и получается неприятное дёрганье


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Как деактивировать окно
СообщениеДобавлено: Сб июл 06, 2019 3:06 pm 
Не в сети
профессор

Зарегистрирован: Пн июл 22, 2013 11:00 pm
Сообщений: 862
Благодарил (а): 2 раз.
Поблагодарили: 41 раз.
Пункты репутации: 9
Допустим заглушишь перерисовку.но у винды если механизм устроен так что после смены координат идёт перерисовка окна в новую экранную позицию то наверно ни как?
PS:Попробуй после загрузки изображения заглушить сообщения #WM_ERASEBKGND;при заполнении окна цветом фона и #WM_PAINT;перерисовка окна. :roll:


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

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


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

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


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

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