[#1] MUI, przechwytywanie klawisza ESC
Witam!

Jak elegancko i skutecznie w programie MUI-owym zmodyfikować działanie
klawisza ESC tak, aby nie powodował on wyjścia z programu, a jedynie
jego ikonifikację?

Czy konieczna jest zabawa w commodity (a jeśli tak, to tworzyć własny
broker, czy korzystać z MUIA_Application_Broker?), czy może należy do
tego podejść inaczej?
[#2] Re: MUI, przechwytywanie klawisza ESC

@Kamul, post #1

wystarczy odpowiednio zareagowac na returnid MUIV_Application_ReturnID_Quit (ustawic MUIA_Application_Iconified na TRUE zamiast konczyc aplikacje).

[#3] Re: MUI, przechwytywanie klawisza ESC

@kiero, post #2

Ale czy to nie doprowadzi do takiej sytuacji, że wyjść z programu
będzie można jedynie przez przesłanie Ctrl+C? Bo mnie chodzi tylko o
"wyłączenie" ESC. Usunięcie programu z poziomu Exchange czy używając
"Quit" z menu powinno nadal działać.
[#4] Re: MUI, przechwytywanie klawisza ESC

@Kamul, post #1

W ustawieniach MUI użytkownik może zmienić ten klawisz na jakiś inny. Z poziomu aplikacji nie powinno się ingerować w ustawienia użytkownika.

[#5] Re: MUI, przechwytywanie klawisza ESC

@Grzegorz Kraszewski, post #4

W ogólności oczywiście masz rację. Ale co zrobić, jeśli program zwykle
siedzi sobie w pamięci od uruchomienia systemu, aż do wyłączenia
komputera. Normalnie jest zikonifikowany. Otwieranie okna
(deikonifikacja) jest wywoływane hotkey'em. Problem natomiast pojawia
się przy jego ponownym ikonifikowaniu (a ma to być szybkie i wygodne).
Oczywiście jedną z możliwości jest ponowne użycie owego hotkey'a. Ale
wiem, że bardzo często aż korci (nie tylko mnie) aby użyć do tego celu
klawisza ESC. I tu jest problem. Bo jakoś nie widzę, żeby w programie
śledzić pojawienie się eventu świadczącego o wciśnięciu ESC, a
jednocześnie np. w readme nakazać użytkownikowi, aby na samym początku
skonfigurował MUI tak, aby klawisz ESC nie powodował zamknięcia okna
programu.

A może źle Cię zrozumiałem?
[#6] Re: MUI, przechwytywanie klawisza ESC

@Kamul, post #5

W takim przypadku zrób jak mówi Kiero, a nawet jeszcze inaczej. Klawisz ESC w standardowej konfiguracji MUI nie powoduje bezwarunkowego wyjścia z programu. Ba on nawet nie generuje komunikatu MUIV_Application_ReturnID_Quit. On tylko zamyka aktywne okno, a więc ustawia mu atrybut MUIA_Window_CloseRequest na TRUE. To jest zupełnie inne działanie niż CTRL+C (które obsługujesz w głównej pętli). Wystarczy odpowiednio zmodyfikować notyfikację na MUIA_Window_CloseRequest, zgodnie z sugestią Kiero.

[#7] Re: MUI, przechwytywanie klawisza ESC

@Grzegorz Kraszewski, post #6

Wielkie dzięki Tobie i Kiero! Szukałem tak daleko, a rozwiązanie było
- jak to często bywa - tuż, tuż... :)
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem