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

Rekomendowane odpowiedzi

Opublikowano

Ostatnio zaczęliście się interesować kwestią GuiRegisterMsg.

Na zachętę postanowiłem wkleić bardzo prosty kawałek kodu, obrazujący prawidłowe użycie Windowsowych Notyfikacji.

 

 

 

 

 

- - - -

 

WM_MOUSELEAVE:

 

Wysyłane jednorazowo tylko po wcześniejszym wywołaniu funkcji 'śledzącej' TrackMouseEvent (z user32.dll), w momencie, gdy mysz opuszcza okno GUI.

 

http://msdn.microsoft.com/en-us/library/ms645616(v=vs.85).aspx

 

 

 

 

WM_MOUSEMOVE:

 

Wysyłane za każdym razem, gdy mysz poruszy się w obszarze 'Client' okna GUI.

 

Obszar 'Client' jest to ten obszar, który nie jest obszarem 'NonClient' (uwierzcie mi, to najprostsza definicja).

Natomiast obszar 'NonClient' jest to zależna od wybranego stylu Windowsa (Panel Sterowania > Ekran > Komopozycje / Wygląd) 'ramka' wokół okna, przyciski systemowe (minimalizuj, maksymalizuj, zamknij) oraz pasek tytułu.

 

http://msdn.microsoft.com/en-us/library/ms645615(v=vs.85).aspx

 

 

 

 

TrackMouseEvent():

 

Funkcja wywołująca 'śledzenie' myszy, w szczególności wywołująca notyfikacje WM_MOUSELEAVE oraz WM_MOUSEHOVER

 

http://msdn.microsoft.com/en-us/library/ms646265(v=vs.85).aspx

 

- - - - -

 

 

 

Dodatkowo, może niektórych was zapoznać z funkcjami Dll*, konkretniej DllCall oraz DllStructCreate, koniecznych tutaj do stworzenia struktury $tagTRACKMOUSEEVENT (dword;dword;hwnd;dword) używanej przy funkcji TrackMouseEvent (koniecznej z kolei do uzyskania notyfikacji WM_MOUSELEAVE, o którą głównie się tutaj rozchodzi).

 

 

 

To jest ukryta treść, proszę

 

Kod mojego autorstwa dla MPCForum oraz autoitscript.com

Komentarze prostym angielskim, gdyż był publikowany na autoitscripts.com

Jeśli nie władacie angielskim na tyle biegle, by je zrozumieć, wnioskuję, że nie władacie sztuką informatyczną na tyle biegle, by ogarnąć ten kod.

 

Support is provided. Questions and feedback are welcome.

Ta sygnatura jest pusta.

Opublikowano

mam takie male pytanie czemu te kody niedzialaja kiedy zrobie na formie np buton?

 

To jest ukryta treść, proszę

 

wiem cos ze cos jest zle:D tylko dalej nie rozumiem czemu;/

Do
$wiek+=1
Until ŻycieGetMsg() = -3

zbieram +

Opublikowano

Też mam ten sam problem :/ jak mam jakiś element GUI to mi nie reaguje na WM_KEYDOWN (jest tylko beep!) :/

Chyba, przez to, że jest aktywny ten element (tu button).

Ja w końcu zrezygnowałem z elementów GUi w mojej grze i mam same obrazki :)

Opublikowano

chcialem uzyc tego sledzenia myszki ale nie ogarniam szukania tych kordow;/ salem w pos = $wParam i wyskakuje np: "0x0000001" tylko jak to podzielic na x i y pos[0] i pos[1] nie dziala takie cus:D aggresion jak mozna to wytlumaczysz nieco?/

Do
$wiek+=1
Until ŻycieGetMsg() = -3

zbieram +

Opublikowano
Sent when the user selects a command item from a menu, when a control sends a notification message to its parent window, or when an accelerator keystroke is translated.

 

Dlaczego WM_COMMAND w ogóle mialoby odbierać ""strzałki"" ? <_<

 

MouseMove tłumaczyłem już wystarczająco, twoja impertynencja zaczyna mnie irytować.

http://msdn.microsoft.com/en-us/library/ms645616(v=vs.85).aspx

translate.google.pl

 

- - - -

 

Natomiast co do problemu hfaua:

 

Kontrolka buttona nie przyjmuje żadnych informacji 'z klawiatury'. W _GuiCtrlButton_Create masz prosty program wypisujący wszystkie dostępne notyfikacje/wiadomości dotyczące buttona, zarówno te przekazywane przez WM_COMMAND jak i WM_NOTIFY.

 

A walenie klawiaturą, gdy button ma 'keyboard focus' i tak skutkuje beep'aniem.

 

Szukam teraz jakieś sposbu, aby wykryć takie działanie użytkownika, KillFocus() buttona i dalej procesować Key_Codes przez główne okno gui, podające je dalej do funkcji obrabiającej WM_KEYDOWN.

Ta sygnatura jest pusta.

Opublikowano

kordy juz zalatwione:d

@up2 dokladnie tylko nazwe taka dalem to chyba nie ma wplywu na dzialanie funkcji... po 2 dzialalo mi to jak mialem kordy tooltip'a bez butona na formie i wlasnie dlatego nie wiem czemu to nie dziala jak jest ten buton handle dalem i dalej nic:/

Do
$wiek+=1
Until ŻycieGetMsg() = -3

zbieram +

×
×
  • Dodaj nową pozycję...