Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Jak dodać GRAFICZNY button?


Rekomendowane odpowiedzi

Opublikowano

Jak dodać graficzny button? Mam już obrazek tego buttona, i nie wiem jak go dodać :/ Chciałbym żeby zmieniała się grafika po najechaniu na niego myszką.

 

Pozdrawiam.

Opublikowano

Możesz odczytać w ten sam sposób kliknięcie na obrazek stworzony przez GUICtrlCreatePic, co kliknięcie na zwykły button. Czyli także GuiGetMsg, GuiCtrlSetOnEvent itp.

EDIT: Ups, chyba nie o to chodzi...

Law of Revelation: The hidden flaw never remains hidden.

Opublikowano

Wszystko się da.

GUIGetCursorInfo jako jeden z indeksów zwracanej tablicy zwróci ci ID kontrolki nad którą się znajduje.

GUICtrlCreatePic można użyć jako buttona.

Wystarczy wstawić odpowiedni warunek w pętli programu, który zmieni grafikę Pica na inną.

846331404756772371599.jpeg
Opublikowano

@up

tylko że to będzie mulić, a guiregistermsg jest JP i ma wyjebane na pętle ;D

 

 

przykład z helpa, dodaj tylko funkcje zmieniającą obrazek na buttonie

#include <GUIConstantsEx.au3>
#include <GuiButton.au3>
#include <WindowsConstants.au3>

Global $btn, $rdo, $chk, $iMemo

; Note the controlId from these buttons can NOT be read with GuiCtrlRead

_Main()

Func _Main()
Local $hGUI
$hGUI = GUICreate("Buttons", 400, 400)
$iMemo = GUICtrlCreateEdit("", 119, 10, 276, 374, $WS_VSCROLL)
GUICtrlSetFont($iMemo, 9, 400, 0, "Courier New")
$btn = _GUICtrlButton_Create($hGUI, "Button1", 10, 10, 90, 50)
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
GUISetState()
MemoWrite("$btn handle: " & $btn)
MemoWrite("$rdo handle: " & $rdo)
MemoWrite("$chk handle: " & $chk & @CRLF)
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
EndSwitch
WEnd
Exit
EndFunc ;==>_Main


; Write a line to the memo control
Func MemoWrite($sMessage)
GUICtrlSetData($iMemo, $sMessage & @CRLF, 1)
EndFunc ;==>MemoWrite
Func WM_NOTIFY($hWnd, $Msg, $wParam, $lParam)
#forceref $hWnd, $Msg, $wParam
Local Const $BCN_HOTITEMCHANGE = -1249
Local $tNMBHOTITEM = DllStructCreate("hwnd hWndFrom;int IDFrom;int Code;dword dwFlags", $lParam)
Local $nNotifyCode = DllStructGetData($tNMBHOTITEM, "Code")
Local $nID = DllStructGetData($tNMBHOTITEM, "IDFrom")
Local $hCtrl = DllStructGetData($tNMBHOTITEM, "hWndFrom")
Local $dwFlags = DllStructGetData($tNMBHOTITEM, "dwFlags")
Local $sText = ""

Switch $nNotifyCode
Case $BCN_HOTITEMCHANGE ; Win XP and Above
If BitAND($dwFlags, 0x10) = 0x10 Then
$sText = "O KURWA, myszka jest na guziku, ale faza "

ElseIf BitAND($dwFlags, 0x20) = 0x20 Then
$sText = "Koniec fazy :< "
EndIf
MemoWrite($sText)
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_NOTIFY

Opublikowano

ehh..

Opt("GuiOnEventMode",1)
$gui = GUICreate("GUI",100,100)
$pic = GUICtrlCreatePic("obrazek.jpg",0,0,100,100)
GUISetState(@SW_SHOW,$gui)
GUICtrlSetOnEvent($pic,"function")
$i = 0
While 1
$i += 1
ToolTip($i)
WEnd
Func function()
Exit
Endfunc

Przykładowy programik.

Opublikowano
ehh..

 

Opt("GuiOnEventMode",1)
$gui = GUICreate("GUI",100,100)
$pic = GUICtrlCreatePic("obrazek.jpg",0,0,100,100)
GUISetState(@SW_SHOW,$gui)
GUICtrlSetOnEvent($pic,"function")
$i = 0
While 1
$i += 1
ToolTip($i)
WEnd
Func function()
Exit
Endfunc

Przykładowy programik

 

Dzięki! :) A mógłbyś wytłumaczyć co znaczy ta część:

 

$i =0
While 1
$i += 1
ToolTip($i)
WEnd
Func function()
Exit
Endfunc

Opublikowano

Napisałem cokolwiek, aby program cokolwiek robił.

$i =0

$i rózwa się 0

While 1
WEnd

Nieskończona pętla

$i += 1

$i zwiększa się o jeden

ToolTip($i)

Wyświetla się wartość $i

Func function()
Exit
Endfunc

Wyjście z aplikacji przypisane do przycisku

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...