Просмотров: 1272 | Дата: 05.05.2024 | Коментарии (0)

Минимизированное окно...






Это своего рода шаблон.
Иногда для мелких оконных утилит можно применить минимизированный стиль.
Это актуально, когда ширина окна сопоставима с шириной заголовка и при стандартном варианте часть заголовка теряется.
В данном варианте, заголовок окна не будет отображаться на панели инструментов и нет кнопки свернуть.
Всё управление осуществляется по клику на значке в трее.

Кнопка Закрыть на окне - скрывает окно.
Левый клик по значку в трее - показать окно.
Правый клик по значку в трее - показать всплывающее меню.

Code
Enumeration  
  #Window_0
  #tray
  #icon  
EndEnumeration
;*******************************
OpenWindow (#Window_0, 0, 0, 200, 300, "Окно", #PB_Window_MinimizeGadget|#PB_Window_ScreenCentered |#PB_Window_Invisible)  
  ;*******************************
  SetWindowLongPtr_(WindowID(#Window_0),#GWL_EXSTYLE, #WS_EX_TOOLWINDOW) ; меняем внешний вид окна
  ;*******************************  
  AddSysTrayIcon(#tray, WindowID(#Window_0),ExtractIcon_(0,"netshell.dll",8)) ; Добавляет значок в Systray из библиокеки
  ;AddSysTrayIcon(#tray,WindowID(#Window_0),CatchImage(#icon,?icon1)); Добавляем свой значок в Systray  
  ;*******************************
  CreatePopupMenu(0) ; Контекстное меню для трея  
  MenuItem(1,"Инфо.")
  MenuItem(2,"Настройки")
  MenuBar()
  MenuItem(3,"Выход")
  ;*******************************
HideWindow(#Window_0,0)
Repeat
Event = WaitWindowEvent()  
  Select Event
  Case #PB_Event_Gadget
Select EventGadget()
  Case 1
  ;код
  Case 2
  ;код
  Case 3
  ;код
 EndSelect
Case #PB_Event_SysTray
If EventType() = #PB_EventType_RightClick ; Обработка правый клик мышки  
  DisplayPopupMenu(0, WindowID(#Window_0)) ; показ вспывающего меню
  EndIf

If EventType() = #PB_EventType_LeftClick ; Обработка левый клик мышки
HideWindow(#Window_0,0) ; показать окно
EndIf
 Case #PB_Event_Menu
  Select EventMenu()
  Case 1
  ;код
  Case 2
  ;код
  Case 3
  Break
  EndSelect
  EndSelect
If Event = #PB_Event_CloseWindow
HideWindow(#Window_0,1)  
EndIf
ForEver
;DataSection ; если берём иконку не из системы
  ;icon1:IncludeBinary "icon.ico"
;EndDataSection


В стандартном варианте это выглядело так:













Сайт посвящён языку программирования PureBasic — коммерческий компилятор языка программирования, использующего синтаксис BASIC. Предназначен для создания кроссплатформенных приложений для AmigaOS, Linux, Microsoft Windows, Windows NT и Mac OS X. Разработан компанией Fantaisie Software.