Что нового

Окно без заголовка и кнопок управления

Krokodile

Новичок
Сообщения
43
Репутация
1
Пытаюсь создать окно, подобно тем, что открываются при нажатии на кнопки в трее(громкость, выбор подключения, батарея, скрытые значки трея)
Код:
#include <EditConstants.au3>
#include <StaticConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

GuiCreate(-1,250,150)
GUISetStyle(BitOR($WS_BORDER,$WS_POPUP,$WS_SIZEBOX))
Opt("GUIOnEventMode",1)
GUISetOnEvent($GUI_EVENT_CLOSE,"CLOSEClicked")
GUISetFont(92,650)
$lb=GUICtrlCreateLabel("",10,10,230,130,BitOR($ES_AUTOVSCROLL, $SS_CENTER))
GUISetState()



While 1
   
WEnd

Func CLOSEClicked()
   Exit
EndFunc
Сразу после запуска окно выглядит так:
b81833cbcfe32eca9a98c83330d751a6.jpg

После смены размера окна верхняя грань становится такого же размера как и остальные
2e62eb34fff69175e18429de1ffedea7.jpg

Как сделать чтоб, все грани изначально были одного размера и по возможности не использовать $WS_SIZEBOX?
 

Khaibit

Осваивающий
Сообщения
103
Репутация
25
Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

GUICreate("Form", 200, 200, 500, 400, BitOR($WS_POPUP, $WS_BORDER), BitOR($WS_EX_TOOLWINDOW, $WS_EX_TOPMOST))
GUISetState(@SW_SHOW)

While 1
	Switch GUIGetMsg()
		Case $GUI_EVENT_PRIMARYDOWN ;закроет окно по нажатию ЛКМ
			Exit
	EndSwitch
WEnd
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Код:
#include <EditConstants.au3>
#include <StaticConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <WinAPI.au3>

$hGUI = GUICreate('', 250, 150, -1, -1, BitOR($WS_BORDER, $WS_POPUP, $WS_THICKFRAME))

Opt("GUIOnEventMode",1)
GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")
GUISetFont(92, 650)
$lb = GUICtrlCreateLabel("", 10, 10, 230, 130, BitOR($ES_AUTOVSCROLL, $SS_CENTER))

GUISetState()
GUIRegisterMsg($WM_NCHITTEST, "WM_NCHITTEST")

While 1
   Sleep(10)
WEnd

Func CLOSEClicked()
   Exit
EndFunc

Func WM_NCHITTEST($hWnd, $iMsg, $iwParam, $ilParam)
	If $hWnd <> $hGUI Then Return $GUI_RUNDEFMSG
	
	Local $iRet = _WinAPI_DefWindowProc($hWnd, $iMsg, $iwParam, $ilParam)
	
	Switch $iRet
		Case 10 To 18
			Return 1
	EndSwitch
	
	Return $iRet
EndFunc
 
Автор
K

Krokodile

Новичок
Сообщения
43
Репутация
1
Khaibit
Ваше окно вообще не отображает рамку :-\
365bcb98298c852668e1a1a11934c21e.jpg

CreatoR
Опять этот GUIRegisterMsg. Так не хочется использовать функции, которыми не умею пока пользоваться.. Но спасибо.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Krokodile [?]
Так не хочется использовать функции, которыми не умею пока пользоваться
Не понимаю это “не хотение”, если оно нужно для скрипта, то почему бы не использовать? Да и почему бы не почитать об этой функции в справке хотя бы?

Тут в скрипте идея в том, чтобы отлавливать событие растягивания окна, и, собственно блокировать его (Return 1).


Добавлено:
Сообщение автоматически объединено:

Krokodile [?]
Пожалуйста, правда...
[info border=#0000ff float=left]На форуме принято помечать тему решенной после получения ответа на свой вопрос!
Вверху или внизу темы нажмите на ссылку такого вида:
package_old.gif
Тема не решена
[/info]
 
Верх