Что нового

Модернизация "калькулятор с плюшками" добавить px линейку

Salofun

Новичок
Сообщения
7
Репутация
0
Версия AutoIt: 3.3.10.2

Описание: Всем привет, я снова с просьбой:

Вот есть "Калькулятор с плюшками", меня он устраивает, но хочется модернизации, возможность скрыть/показать, и еще всякое. Суть:

1. Добавить возможность скрыть/показать окно калькулятора биндом "ctrl+5"

2. Добавить пиксельную линейку экрана (в идеале как у clip2net), в реале любой вариант подойдет, желательно:
- линейка активируется на "ctrl+6"
- имеет лупу (50х50пиксов с 10х зумом),
- определение цвета в пикселе под курсором мыши в виде #ffffff,
- выделенная область в пикселях,
- возможность скопировать цвет, кол-во пикселей,
- закрытие линейки так-же на "ctrl+6"

Примечания: "калькулятор с плюшками",

Код:
#include <WindowsConstants.au3>
#include <EditConstants.au3>

HotKeySet("^1", "SetFocus")
HotKeySet("^2", "SetFocus")
HotKeySet("^3", "ChangeBtn")
HotKeySet("^4", "CopyResult")

$gui = GUICreate("Калькулятор с плюшками", 195, 30, -1, -1, BitOR($WS_POPUP, $WS_BORDER), BitOR($WS_EX_TOOLWINDOW, $WS_EX_TOPMOST, $WS_EX_CONTROLPARENT))
$inp1 = GUICtrlCreateInput("", 5, 5, 40, 20, $ES_NUMBER)
$btn1 = GUICtrlCreateButton("+", 50, 5, 20, 20)
$inp2 = GUICtrlCreateInput("", 75, 5, 40, 20, $ES_NUMBER)
$btn2 = GUICtrlCreateButton("=", 120, 5, 20, 20)
$inp3 = GUICtrlCreateInput("", 145, 5, 45, 20, $ES_READONLY)
GUISetState()

GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")

Do
  Switch GUIGetMsg()
    Case -3
      Exit
    Case $btn1
      ChangeBtn()
    Case $btn2
      CopyResult()
  EndSwitch
Until 0

Func WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)
  If ($lParam = GUICtrlGetHandle($inp1) Or $lParam = GUICtrlGetHandle($inp2)) And BitShift($wParam, 16) = $EN_CHANGE Then
    GUICtrlSetData($inp3, Execute(GUICtrlRead($inp1) & GUICtrlRead($btn1) & GUICtrlRead($inp2)))
    CopyResult()
  EndIf
  Return "GUI_RUNDEFMSG"
EndFunc

Func ChangeBtn()
  If GUICtrlRead($btn1) = "+" Then
    GUICtrlSetData($btn1, "-")
  Else
    GUICtrlSetData($btn1, "+")
  EndIf
  GUICtrlSetData($inp1, GUICtrlRead($inp1))
EndFunc

Func CopyResult()
  Local $str = GUICtrlRead($inp3)
  If $str Then ClipPut($str)
EndFunc

Func SetFocus()
  Local $inp = Eval("inp" & StringRight(@HotKeyPressed, 1))
  WinActivate($gui)
  GUICtrlSetData($inp, "")
  ControlFocus($gui, "", $inp)
EndFunc


Респект, тому кто сделает :laugh:
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
Salofun, А код в
autoit.gif
[autoit][/autoit] правильные теги кто будет вставлять?
 
Верх