|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » MSGBOX с отсчетом на кнопке по умолчанию |
|
|
MSGBOX с отсчетом на кнопке по умолчанию
|
Пользователь Сообщения: 65 |
Профиль | Отправить PM | Цитировать
Помогите пожалуйста. То ли я не понимаю, то ли стандартными функциями это никак не сделать.
Нужен диалог с двумя кнопками. Текст кнопок можно задать. И чтоб на кнопке по умолчанию шел отсчет. |
|
Отправлено: 19:08, 29-08-2010 |
$AutoITer Сообщения: 446
|
Профиль | Отправить PM | Цитировать Не, такого диалога нет
Напиши его |
------- Отправлено: 20:35, 29-08-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать А теперь посмотрите ниже на «Похожие темы», там есть тема: [решено] MsgBox (Ok, Cancel) с обратным отсчетом времени.
Поиском нужно пользоваться перед созданием тем. |
------- Отправлено: 21:22, 29-08-2010 | #3 |
Пользователь Сообщения: 65
|
Профиль | Отправить PM | Цитировать пользовался... не нашел 'msgbox с отсчетом' вот и решил создать.
в похожей теме он какойто глюкавый. первый предложенный вариант, хоть и не глюкавый, вообще требует установленной autoit)) неужели невозможно сделать лучше? |
Отправлено: 08:43, 30-08-2010 | #4 |
Ветеран Сообщения: 553
|
Профиль | Отправить PM | Цитировать Цитата Smokie_id11243755:
|
||
Отправлено: 15:11, 30-08-2010 | #5 |
Пользователь Сообщения: 65
|
Профиль | Отправить PM | Цитировать |
Последний раз редактировалось Smokie_id11243755, 30-08-2010 в 16:09. Отправлено: 15:53, 30-08-2010 | #6 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Smokie_id11243755:
Цитата Smokie_id11243755:
#Include <GUIConstantsEx.au3> #Include <ButtonConstants.au3> #Include <WindowsConstants.au3> $Title = "My Custom MsgBox" $Prompt = "Are you sure?" $CheckBoxText = "Don't show again" $hWnd = WinGetHandle("") $Ask = _GUIMsgBox(256+36, 2, $Title, $Prompt, 330, 120, $CheckBoxText, 10, $hWnd, "OK", "Cancel") $CheckBitAnd = BitAND($Ask, 8) $Var = "Pressed " Select Case $Ask - $CheckBitAnd = 1 $Var &= "'OK'" Case $Ask - $CheckBitAnd = 6 $Var &= "'Yes' or 'OK'" Case $Ask - $CheckBitAnd = 7 $Var &= "'No' or 'Cancel'" EndSelect If $CheckBitAnd = 8 Then $Var &= @LF & "And CheckBox <" & $CheckBoxText & "> was Checked" _GUIMsgBox(64, 1, "Message", "Returned values:" & @LF & @LF & $Var) Func _GUIMsgBox($iIcoType,$iBtnNum,$sTitle,$sTxt,$iW=350,$iH=130,$sCB_Txt=-1,$iTimer=-1,$hWnd=0,$sB1Txt=-1,$sB2Txt=-1,$nExStyle=-1) Local $nYes_Button, $nNo_Button, $nOK_Button, $nCheckBox=-1, $hMsgBox_GUI, $iGuiHeight = $iH Local $nStyle = BitOR($WS_CAPTION, $WS_POPUP) Local $nMsg, $iReturnVal = 0 Local $nDefButton, $sDefButtonText = $sB1Txt, $iCounter Local $iMessageBeep = -1, $iIcon_Id = 102 Local $iOld_Opt_GOEM = Opt('GuiOnEventMode', 0) Local $iOld_Opt_GCOE = Opt('GUICloseOnESC', 0) If $iBtnNum = 1 Then $nStyle = BitOR($nStyle, $WS_SYSMENU) If BitAND($iIcoType, 262144) Then If $nExStyle = -1 Or $nExStyle = Default Then $nExStyle = 0 $nExStyle = BitOR($nExStyle, $WS_EX_TOPMOST) EndIf If $sCB_Txt <> -1 Then $iGuiHeight += 25 If $sB1Txt = -1 Then $sB1Txt = 'OK' If $sB2Txt = -1 Then $sB2Txt = 'Cancel' If IsHWnd($hWnd) Then WinSetState($hWnd, "", @SW_DISABLE) $hMsgBox_GUI = GUICreate($sTitle, $iW, $iGuiHeight, -1, -1, $nStyle, $nExStyle, $hWnd) Select Case $iIcoType = 16 Or $iIcoType = 16 + 256 $iIcon_Id = 103 $iMessageBeep = 0x00000010 Case $iIcoType = 32 Or $iIcoType = 32 + 256 $iIcon_Id = 102 $iMessageBeep = 0x00000020 Case $iIcoType = 48 Or $iIcoType = 48 + 256 $iIcon_Id = 101 $iMessageBeep = 0x00000030 Case $iIcoType = 64 Or $iIcoType = 64 + 256 $iIcon_Id = 104 $iMessageBeep = 0x00000040 EndSelect GUICtrlCreateIcon('user32.dll', $iIcon_Id, 10, 10) GUICtrlCreateLabel($sTxt, 70, 15, $iW-80, $iH-50) Select Case $iBtnNum = 2 $nYes_Button = GUICtrlCreateButton($sB1Txt, ($iW/2)-90, $iH-35, 70, 20, $BS_DEFPUSHBUTTON) $nDefButton = $nYes_Button Local $iSecButtDeffStyle = 0 If BitAND($iIcoType, 256) Then $iSecButtDeffStyle = $BS_DEFPUSHBUTTON $nNo_Button = GUICtrlCreateButton($sB2Txt, ($iW/2)+20, $iH-35, 70, 20, $iSecButtDeffStyle) If BitAND($iIcoType, 256) Then $nDefButton = $nNo_Button Case Else $nOK_Button = GUICtrlCreateButton($sB1Txt, ($iW-70)/2, $iH-35, 70, 20) GUICtrlSetState($nOK_Button, $GUI_ONTOP) $nDefButton = $nOK_Button EndSelect If $sCB_Txt <> -1 Then $nCheckBox = GUICtrlCreateCheckbox($sCB_Txt, 15, $iH-10) GUISetState(@SW_SHOW, $hMsgBox_GUI) DllCall("user32.dll", "int", "MessageBeep", "int", $iMessageBeep) If $iTimer > 0 Then $iCounter = $iTimer $iTimer = TimerInit() $sDefButtonText = GUICtrlRead($nDefButton) GUICtrlSetData($nDefButton, $sDefButtonText & ' (' & $iCounter & ')') EndIf While 1 $nMsg = GUIGetMsg() If $iTimer > 0 And TimerDiff($iTimer) >= 1000 Then $iTimer = TimerInit() $iCounter -= 1 GUICtrlSetData($nDefButton, $sDefButtonText & ' (' & $iCounter & ')') If $iCounter < 0 Then $nMsg = $nDefButton EndIf Select Case $iBtnNum = 2 And $nMsg = $nYes_Button $iReturnVal = 6 ExitLoop Case $iBtnNum = 2 And $nMsg = $nNo_Button $iReturnVal = 7 ExitLoop Case $nMsg = -3 Or ($nMsg = $nOK_Button And $iBtnNum <> 2) $iReturnVal = 1 ExitLoop EndSelect Wend If GUICtrlRead($nCheckBox) = 1 Then $iReturnVal += 8 If IsHWnd($hWnd) Then WinSetState($hWnd, "", @SW_ENABLE) GUIDelete($hMsgBox_GUI) If IsHWnd($hWnd) Then GUISwitch($hWnd) Opt('GuiOnEventMode', $iOld_Opt_GOEM) Opt('GUICloseOnESC', $iOld_Opt_GCOE) Return $iReturnVal EndFunc |
||
------- Отправлено: 17:09, 30-08-2010 | #7 |
Пользователь Сообщения: 65
|
Профиль | Отправить PM | Цитировать сэнкс
х) тока ща заметил што создал тему о какомто DLGBOX) |
Отправлено: 18:43, 30-08-2010 | #8 |
Новый участник Сообщения: 9
|
Профиль | Отправить PM | Цитировать А можно ли сделать так, чтобы отсчет останавливался при нажатии кнопок клавиатуры или клика мышкой? Как обычно и происходит в таких диалогах в полноценных программах
|
Отправлено: 18:43, 16-01-2012 | #9 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Smallkey:
Цитата Smallkey:
|
||
------- Отправлено: 21:58, 16-01-2012 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Интернет - [ie8] Не грузятся файлы по кнопке | nictrace | Microsoft Windows 2000/XP | 3 | 06-07-2012 01:30 | |
[решено] MsgBox (Ok, Cancel) с обратным отсчетом времени. | A4S | AutoIt | 17 | 10-09-2009 17:16 | |
[решено] Как кликнуть по кнопке ToolStripButton | alexey_a | AutoIt | 13 | 02-04-2009 17:56 | |
Интерфейс - Вопрос по кнопке выключения в меню пуск? | Simlion | Microsoft Windows Vista | 1 | 07-09-2007 08:56 | |
цвет надписи на кнопке | hameg | Программирование и базы данных | 4 | 09-03-2004 19:27 |
|