From: Jamal M. <Jam...@fc...> - 2006-07-18 19:10:11
|
I was able to define accelerators that solved the Tab and Escape key problems. In case this helps others, I am pasting relevant code below. Please forgive the lack of formatting: I happen to be blind and find indentation more of a hindrance than a help with my talking computer system. =20 Regards, Jamal Win32::GUI->import(qw(ES_WANTRETURN GW_HWNDNEXT GW_HWNDPREV GW_HWNDLAST GW_HWNDFIRST)); package Win32::GUI; sub Tab { my $Focus =3D GetFocus(); my $Next =3D GetWindow($Focus, GW_HWNDNEXT); $Next =3D GetWindow($Focus, GW_HWNDFIRST) unless $Next; SetFocus($Next); return 1; } sub ShiftTab { my $Focus =3D GetFocus(); my $Prev =3D GetWindow($Focus, GW_HWNDPREV); $Prev =3D GetWindow($Focus, GW_HWNDLAST) unless $Prev; SetFocus($Prev); return 1; } my $Keyboard =3D Win32::GUI::AcceleratorTable->new(Escape =3D> sub {-1}, = Tab =3D> \&Tab, 'Shift+Tab' =3D> \&ShiftTab); my $Dlg =3D Win32::GUI::Window->new(-name =3D> 'Dlg', -title =3D> $p1, = -width =3D> 434, -height =3D> 483, -dialogui =3D> 1, -accel =3D> $Keyboard, -onTerminate =3D> sub {-1}); |