🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: alt.pl.comp.lang.csharp
3 messages
3 total messages Started by WebSpider Mon, 14 Jun 2010 21:57
Jak zablokować zamykanie DialogBoxa przez ESC?
#21585
Author: WebSpider
Date: Mon, 14 Jun 2010 21:57
10 lines
1196 bytes
Witam!
Pracuję nad aplikacją której działanie można przerwać
naciskając Escape, jednak, gdy użytkownik się pośpieszy
i kilka razy go naciśnie to efekt jest taki, że aplikacja się wyłącza.
Forma jest typu FixedDialog i chciałbym przy tym zostać.
Można to jakoś ominąć?

-- 
Pozdrawiam,
Konrad 
Re: Jak zablokować zamykanie DialogBoxa przez ESC?
#21586
Author: GrzybSon
Date: Tue, 15 Jun 2010 07:35
46 lines
2788 bytes
Użytkownik "WebSpider" <webs1821@spaaamowe.gmail.com> napisał w wiadomości 
news:hv68jq$j26$1@news2.ipartners.pl...
> Witam!
> Pracuję nad aplikacją której działanie można przerwać
> naciskając Escape, jednak, gdy użytkownik się pośpieszy
> i kilka razy go naciśnie to efekt jest taki, że aplikacja się wyłącza.
> Forma jest typu FixedDialog i chciałbym przy tym zostać.
> Można to jakoś ominąć?
>
> -- 
> Pozdrawiam,
> Konrad


Użytkownik "WebSpider" <webs1821@spaaamowe.gmail.com> napisał w wiadomości 
news:hv68jq$j26$1@news2.ipartners.pl...
> Witam!
> Pracuję nad aplikacją której działanie można przerwać
> naciskając Escape, jednak, gdy użytkownik się pośpieszy
> i kilka razy go naciśnie to efekt jest taki, że aplikacja się wyłącza.
> Forma jest typu FixedDialog i chciałbym przy tym zostać.
> Można to jakoś ominąć?
>
> -- 
> Pozdrawiam,
> Konrad

Myślę, że można by to zrobić na 3 sposoby:
1. poprzez założenie haka klawiaturowego na aplikację lub globalnego 
systemowego: wtedy przechwytujesz naciśnięcia klawiszy i odpowiednio 
reagujesz na klawisz ESC. Tutaj musisz wykazać się dobrą znajomością wywołań 
WinApi.
2. dołączenie do aplikacji filtru na wiadomości systemowego poprzez 
implementację interfejsu IMessageFilter. Działa to podobnie do haka z tym, 
że nie musisz dotykać się wogóle do WinApi no i działa w obrębie aplikacji.
3. ustawić flagę KeyPreview na true w formie wtedy także przechwytujesz 
naciśnięcia klawiszy w ramach formy - niestety tego nie testowałem i nie 
wiem czy naciśnięcie ESC w dialogu zostanie przechwycone w zdarzeniu KeyDown 
dla formy.

Ja bym zalecał punkt 2.

--
Pozdrawiam
 Maćko 
Re: Jak zablokować zamykanie DialogBoxa przez ESC?
#21587
Author: WebSpider
Date: Tue, 15 Jun 2010 12:48
30 lines
2124 bytes
Użytkownik "GrzybSon" <grzybson@poczta.fm> napisał
>
> Myślę, że można by to zrobić na 3 sposoby:
> 1. poprzez założenie haka klawiaturowego na aplikację lub globalnego 
> systemowego: wtedy przechwytujesz naciśnięcia klawiszy i odpowiednio 
> reagujesz na klawisz ESC. Tutaj musisz wykazać się dobrą znajomością 
> wywołań WinApi.
> 2. dołączenie do aplikacji filtru na wiadomości systemowego poprzez 
> implementację interfejsu IMessageFilter. Działa to podobnie do haka z tym, 
> że nie musisz dotykać się wogóle do WinApi no i działa w obrębie 
> aplikacji.
> 3. ustawić flagę KeyPreview na true w formie wtedy także przechwytujesz 
> naciśnięcia klawiszy w ramach formy - niestety tego nie testowałem i nie 
> wiem czy naciśnięcie ESC w dialogu zostanie przechwycone w zdarzeniu 
> KeyDown dla formy.
>
> Ja bym zalecał punkt 2.
>

3. pkt raczej nie zadziała, przynajmniej w moim wykonaniu ;)
bo tego próbowałem zanim tu napisałem.
2. coś właśnie poczytałem i chyba będzie ok :)
dzięki wielkie!

PS> OT: PCz? :)

-- 
Pozdrawiam,
Konrad 
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads