Что нового

[Элементы GUI] Создать окно на подобии MsgBox

Сообщения
119
Репутация
-6
Как средствами GUI Autoit вывести окно, которое будет на подобии MsgBox, а именно:
1. отсутствуют "свернуть" и "развернуть", оставив только "закрыть"
2. отдельная область под текст
3. отдельная область под кнопку
4. кнопка в стиле "OK' msgBox'а
 

joiner

Модератор
Локальный модератор
Сообщения
3 035
Репутация
503
В справке все есть. Может, пора начинать читать справку, чтобы не плодить детские вопросы? Да и поиск по форуму творит чудеса
 

AZJIO

Меценат
Меценат
Сообщения
2 750
Репутация
1 146
https://pastebin.com/fWcPjjfP
https://pastebin.com/1QfZVF4G
https://pastebin.com/qnx3ZWHV
 
Автор
Э
Сообщения
119
Репутация
-6
AZJIO, благодарю, с п. 1 разобрался.
Код:
$hGUI = GUICreate($sThisTitle, $iThisWidth, $iThisHeight, -1, -1, BitOR($WS_CAPTION, $WS_SYSMENU, $DS_SETFOREGROUND, $ws_popup, $ws_border))



П.2 и п.3 скорее о том, как сделать так, чтобы при увеличении размера того же Label, он не наезжал/перекрывал на кнопку. В Visual Studio в конструкторе для этого есть специальные области, на которых можно группировать элементы, и они потом, например, скрываются при необходимости. В функциях я нашел из похожего Dummy и Group.

Про п.4 можете забыть. Я понял, что разница в том, что в случае с msgbox на ней фокус.
 

AZJIO

Меценат
Меценат
Сообщения
2 750
Репутация
1 146
П.2 и п.3 скорее о том, как сделать так, чтобы при увеличении размера того же Label, он не наезжал/перекрывал на кнопку.
Для этого есть функции поведения окна при изменении размера. Они меняются по заданным вами критериям. Dummy изначально не виден, это пустышка чтобы применить к ней свойства кнопки.
Про п.4 можете забыть. Я понял, что разница в том, что в случае с msgbox на ней фокус.
Фокус на кнопку устанавливается, причём один фокус так и называется фокус, другой "кнопка по умолчанию", на которой будет событие когда нажмёшь Enter.
отсутствуют "свернуть" и "развернуть",
Это задаётся стилями окна.
 
Автор
Э
Сообщения
119
Репутация
-6
Капец, кто это описание придумал? :stars: Так-с, с кнопкой тоже разобрался.
Creates a push button with a heavy black border. If the button is in a dialog box, the user can select the button by pressing the ENTER key, even when the button does not have the input focus. This style is useful for enabling the user to quickly select the most likely option, or default.
Пункты 2 и 3 ещё раз поясняю. У тебя в скрипте с примерами стиля есть стиль "Растягивание окна". Если рястянуть окно обратно - уменьшить, то часть элементов скроется за пределами.
Если не указать размеры Label, то текст не переносится.
Код:
$hGUI = GUICreate('', 300, 150)
GUICtrlCreateLabel('Your text message gfkjdghfgjkdhf dfjgdhkfkgj hdfgj hdfgjfhgdjfgh jfgh dfjghkd jghdfjkgjfhg irughd gkal airgoaj krghai jgaigaj gkhjh kghragiajk hgjh aiaga g jagurghak jughrjg ghdjkghd fg  fhj kgzlzkgjhz gzlgkjjr ij zhgjrh g', 16, 12)

С указанием размеров перенос работает, а вот по высоте текст закончится неожиданно. Возникает вопрос, как сделать, чтобы высота была под текст, и при этом Label не перекрыл другие элементы. Вариант с прокруткой не считается.
 

AZJIO

Меценат
Меценат
Сообщения
2 750
Репутация
1 146
GUICtrlSetResizing - задаёт изменения индивидуально.
GUIResizeMode - задаёт поведение всех по умолчанию.
 
Верх