From: Blair S. <bs...@nu...> - 2004-06-11 12:05:29
|
The docs suggest "Shift-3" should work but in fact you need a reference! snip---> use Win32::GUI; $A = new Win32::GUI::AcceleratorTable( "Shift-1" => \&S1, "Shift-2" => sub { $W->Caption("Shift-2"); }, "Shift-3" => "S3", ); $W = new Win32::GUI::Window(-accel => $A, -width => 200); $W->Show(1); Win32::GUI::Dialog; sub S1 { $W->Caption("Shift-1"); } sub S3 { $W->Caption("Shift-3"); } |
From: Laurent R. <ro...@cl...> - 2004-06-11 17:11:59
|
Hi, When you use a string as an accelerator function name, it's call <name>_Click event. It's not try to call an "S3" sub but an "S3_Click" Sub. Just change : sub S3 { $W->Caption("Shift-3"); } By : sub S3_Click { $W->Caption("Shift-3"); } And it's work ;o) Laurent. PS : From last documentation : ... when an accelerator is used, a corresponding <name>_Click event is fired. > The docs suggest "Shift-3" should work but in fact you need a reference! > > snip---> > > use Win32::GUI; > > $A = new Win32::GUI::AcceleratorTable( > "Shift-1" => \&S1, > "Shift-2" => sub { $W->Caption("Shift-2"); }, > "Shift-3" => "S3", > ); > > $W = new Win32::GUI::Window(-accel => $A, -width => 200); > $W->Show(1); > Win32::GUI::Dialog; > > sub S1 { $W->Caption("Shift-1"); } > sub S3 { $W->Caption("Shift-3"); } > |