mirror of
https://github.com/stasenso/Puer.git
synced 2026-06-26 21:32:42 +03:00
Add minimize-to-system-tray behavior
This commit is contained in:
@@ -39,6 +39,7 @@ WinMain endp
|
||||
WndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
|
||||
LOCAL hDC:HDC
|
||||
.if uMsg==WM_DESTROY ; если пользователь закpывает окно
|
||||
invoke Shell_NotifyIconA,NIM_DELETE,addr note
|
||||
invoke DestroyMenu,hPopupMenu
|
||||
invoke SetThreadExecutionState,ES_CONTINUOUS
|
||||
invoke PostQuitMessage,NULL ; выходим из пpогpаммы
|
||||
@@ -47,6 +48,13 @@ WndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
|
||||
mov hPopupMenu,rax ;Создаём pop-up меню для взаимодействия через трей
|
||||
invoke AppendMenuA,hPopupMenu,MF_STRING,IDM_RESTORE,addr RestoreString
|
||||
invoke AppendMenuA,hPopupMenu,MF_STRING,IDM_EXIT,addr ExitString
|
||||
invoke LoadIcon,hInstance,IDI_ICON
|
||||
mov hIcon,rax
|
||||
.if rax==0
|
||||
invoke LoadIcon,NULL,IDI_APPLICATION
|
||||
mov hIcon,rax
|
||||
.endif
|
||||
mov note.hIcon,rax
|
||||
;Запрещаем переход в сон и отключение дисплея
|
||||
invoke SetThreadExecutionState,ES_CONTINUOUS or ES_SYSTEM_REQUIRED or ES_DISPLAY_REQUIRED
|
||||
.if rax ==-1
|
||||
@@ -56,6 +64,25 @@ WndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
|
||||
ret
|
||||
.endif
|
||||
|
||||
.elseif uMsg==WM_SIZE
|
||||
.if wParam==SIZE_MINIMIZED
|
||||
mov note.cbSize,SIZEOF TRAYICONDATAA
|
||||
mov rax,hWnd
|
||||
mov note.hWnd,rax
|
||||
mov note.uID,IDI_TRAY
|
||||
mov note.uFlags,NIF_ICON or NIF_MESSAGE or NIF_TIP
|
||||
mov note.uCallbackMessage,WM_SHELLNOTIFY
|
||||
mov rax,hIcon
|
||||
mov note.hIcon,rax
|
||||
invoke lstrcpyA,addr note.szTip,addr AppName
|
||||
invoke Shell_NotifyIconA,NIM_ADD,addr note
|
||||
.if rax==0
|
||||
.else
|
||||
invoke ShowWindow,hWnd,SW_HIDE
|
||||
.endif
|
||||
.endif
|
||||
mov rax,0
|
||||
ret
|
||||
.elseif uMsg==WM_PAINT
|
||||
invoke myPaint,hWnd
|
||||
.elseif uMsg==WM_ERASEBKGND
|
||||
|
||||
Reference in New Issue
Block a user