Что нового

Самопальный MsgBox

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,673
Репутация
2,486
Версия AutoIt
3.3.10.2
Версия
1.1
Категория: Окна и диалоги, Элементы GUI

Описание: Альтернатива для встроенного MsgBox с использованием элементов GUI.
Позволяет указывать текст кнопок, выводить отсчёт времени таймаута, и делать другие изменения в выводимом окошке сообщения.

Код/Пример:
Код:
#include "MsgBox.au3"

$MB_MESSAGEBEEP = 1
$MB_TIMEOUTCOUNT = 1

$nFlags = BitOR($MB_TOPMOST, $MB_SYSTEMMODAL, $MB_DEFBUTTON1, $MB_ICONASTERISK, $MB_YESNO)
$sTitle = "My Custom MsgBox"
$sText = "Are you sure?"
$iTimeOut = 2
$hWnd = WinGetHandle("")

$Ask = MsgBox($nFlags, $sTitle, $sText, $iTimeOut, $hWnd)
ConsoleWrite(StringFormat("+ Return: %i\n! TimedOut: %s\n", $Ask, $Ask = -1))

;Сравнение с оригиналом

$Ask = _MsgBoxEx($nFlags, $sTitle, $sText, $iTimeOut, $hWnd)
ConsoleWrite(StringFormat("+ Return: %i\n! TimedOut: %s\n", $Ask, @extended = 1))

Файл: MsgBox.zip

История версий:
v1.1
* Добавлены опциональные параметры $iLeft и $iTop.

v1.0
* Первая публичная версия
 
Автор
G.Sandler (CreatoR)
Источник
Ссылка на источник

Вложения

  • MsgBox_1.1.zip
    5.1 КБ · Просмотры: 64
Последнее редактирование:

Medic84

Омега
Команда форума
Администратор
Сообщения
1,590
Репутация
341
Было бы несколько интереснее если бы можно было выбирать самому боковую иконку =)
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,673
Репутация
2,486
Medic84
Zaramot
Так на то он и самопальный!

Текст уже можно задавать через переменные (см. «User Variables»), ну а иконку через GUICtrlCreateIcon в самой функций.
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,673
Репутация
2,486
Перезалил архив.
 

Vic58

Знающий
Сообщения
24
Репутация
10
У меня тоже самопальный MsgBox, но Ваш более грамотный. Скоро докончу проект и выложу, в котором большинство окон в одном стиле.
В Ваше боксе мне не хватает: линии прогрессбара (что бы не вглядываться в цифры), возможности копирования в буфер клавиатуры сообщения, остановки таймера Timeout при клике по сообщению (иногда надо, чтобы понять или перевести, что спрашивают).
В принципе, все решается, (прилагаю библиотеку с минимальными изменениями, отмечены ;~ ***Editing), но заткнулся на рамке, возникающей при замене элемента label на edit. Можно ли ее убрать? Мне седьмой десяток и быстро самому уже не разобраться с системными приемами.
Спасибо !
 

Вложения

  • MsgBox.zip
    5.4 КБ · Просмотры: 19
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,673
Репутация
2,486
заткнулся на рамке, возникающей при замене элемента label на edit. Можно ли ее убрать?
Замените $ES_MULTILINE+$ES_READONLY) на BitOR($ES_MULTILINE, $ES_READONLY), 0).
В последнем параметре (расширенный стиль элемента) я указал 0, т.к по умолчанию там -1 ($WS_EX_CLIENTEDGE - рамка элемента).

Мне седьмой десяток
Это похвально, в этом возрасте обычно играют в домино а не коды пишут )).
 

Vic58

Знающий
Сообщения
24
Репутация
10
Приятно иметь дело со знающими людьми. Очень сохраняет время и не только !
Еще раз спасибо.
Сообщение автоматически объединено:

Еще один вопрос на тему самопальный MsgBox. Можно ли как то унаследовать в раскраске Бокса, цветовую тему (светлую, темную), установленную в системе (у меня Windows 10), как это делается например в нативной функции FileOpenDialog(). Найти на форуме мне пока не удалось, может есть какие-то решения ?
 
Последнее редактирование:
Верх