Forth
http://www.fforum.winglion.ru/

Quark.exe: окно без кнопок и границ. Полноэкранный режим.
http://www.fforum.winglion.ru/viewtopic.php?f=23&t=2746
Страница 1 из 1

Автор:  VoidVolker [ Вс авг 07, 2011 23:26 ]
Заголовок сообщения:  Quark.exe: окно без кнопок и границ. Полноэкранный режим.

Слова для скрытия управляющих кнопок и границ окна, полноэкраннный режим.
Код:
QUAN ActiveLibrary
: FUNCTION   \ ( str -- ) ( "name" --> ) \ Получить адрес функции с именем, индетифицируемом строкой str из текущей загруженной библиотеки; создать слово "name", возвращающее адрес этой функции. name ( -- addr )
  ActiveLibrary SWAP GETPROCADDRESS VALUE
;

" User32.dll" LOADLIBRARY CONSTANT User32.dll
User32.dll TO ActiveLibrary

" SetWindowLongA" FUNCTION SetWindowLongA@
" SetWindowPos" FUNCTION SetWindowPos@
" GetDesktopWindow" FUNCTION GetDesktopWindow@
" GetWindowRect" FUNCTION GetWindowRect@

VARIABLE QWinStyle
: QW-UPDATE-STYLE
  hwnd @ 0 0 0 0 0 0x0027 7 SetWindowPos@ API DROP
;

: QWBHide  \ ( -- )
  hwnd @ -16 0x94000800 SetWindowLongA@ API3 QWinStyle ! ;
: QWBShow   \ ( -- )
  hwnd @ -16 QWinStyle @ SetWindowLongA@ API3 DROP ;
: QWB-HIDE   \ ( -- )
  QWBHide QW-UPDATE-STYLE ;
: QWB-SHOW   \ ( -- )
  QWBShow QW-UPDATE-STYLE
;

4 CELLS ARRAY NotFScrRect
4 CELLS ARRAY FScrRect

QUAN 'FULLSCREEN-OFF
VECT <FULLSCREEN>

: FULLSCREEN-ON   \ ( -- )
  hwnd @ NotFScrRect GetWindowRect@ API2 DROP
  GetDesktopWindow@ API0 FScrRect GetWindowRect@ API2 DROP
  QWBHide
  hwnd @ -1
  FScrRect @        FScrRect 1 -TH @    \ x y
  FScrRect 2 -TH @  FScrRect 3 -TH @    \ w h
  CR
  0x0060
  7 SetWindowPos@ API DROP
  'FULLSCREEN-OFF TO <FULLSCREEN>
;

' FULLSCREEN-ON TO <FULLSCREEN>

: FULLSCREEN-OFF   \ ( -- )
  QWBShow
  hwnd @ -2
  NotFScrRect @        NotFScrRect 1 -TH @    \ x y
  NotFScrRect 2 -TH @  NotFScrRect 3 -TH @    \ w h
  CR
  0x0060
  7 SetWindowPos@ API DROP
  USE FULLSCREEN-ON TO <FULLSCREEN>
; ' FULLSCREEN-OFF TO 'FULLSCREEN-OFF


' <FULLSCREEN> TO K_F12

Автор:  Hishnik [ Вс авг 07, 2011 23:31 ]
Заголовок сообщения:  Re: Quark.exe: окно без кнопок и границ. Полноэкранный режим

'FULLSCREEN-ON TO <FULLSCREEN> можно заменить на ['] FULLSCREEN-ON TO <FULLSCREEN>

['] - immediate-слово. Алиас - USE.

Автор:  VoidVolker [ Вс авг 07, 2011 23:38 ]
Заголовок сообщения:  Re: Quark.exe: окно без кнопок и границ. Полноэкранный режим

Ой, точно. На автомате сделал =)

Автор:  VoidVolker [ Вс авг 07, 2011 23:42 ]
Заголовок сообщения:  Re: Quark.exe: окно без кнопок и границ. Полноэкранный режим

Упс, бага - окно ужимается. :shuffle;
Завтра разберусь.

Страница 1 из 1 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/