From: <ro...@4r...> - 2006-03-20 08:23:00
|
Why "-tabsotp=3D>1" can't directly work in the standard WINDOW? Why has to be able to use in DialogUI? After also has adds on -dialogui=3D>1, Textfield controls in not to be ab= le to input <TAB>, I now have the solution:=20 $Win->AddTextfield( -text =3D> "", -name =3D> "Result", -left =3D> 7, -top =3D> 78, -width =3D> 622, -height =3D> 395, -autovscroll =3D> 1, -multiline =3D> 1, -hscroll =3D> 1, -vscroll =3D> 1, -autohscroll =3D> 1, -popstyle =3D> WS_BORDER, -addstyle =3D> ES_WANTRETURN, );=20 sub Result_KeyDown { my $key=3DWin32::GUI::GetKeyboardState; $Win->{Result}->ReplaceSel("\t") if $key->[0x09]; }=20 Also has a better method?=20 rob=20 =20 >Robert May =D0=B4=B5=C0=A3=BA > ro...@4r... wrote: >> hi all >> If does not add on "$Win->{'-dialogui'}=3D1",then "-tapstop=3D>1" cann= ot use, >=20 > Please don't access the object's hash directly like this, it might sto= p > working at some stage. Please use the constructor's -dialogui option, > the Change() method, or the DialogUI() method. The following all > achieve the same thing:=20 >=20 > my $win =3D Win32::GUI::Window->new( > ... > -dialogui =3D> 1, > ... > );=20 >=20 > $win->Change(-dialogui =3D> 1);=20 >=20 > $win->DialogUI(1);=20 >=20 >> but if adds on "$Win->{'-dialogui'}=3D1", >> then "$Win->AddTextfield(-multiline=3D>1, ...)" has been invalid, >> in Textfield cannot knock the Enter.... >=20 > Setting DialogUI(1) on a top level window makes it behave as a > 'standard' windows dialog, where the <ENTER> key is mapped to the > default behaviour (usually the 'OK' button). If you want a multi-line > textfield to be able to have <Enter> make a new-line, then you need to > add the ES_WANTRETURN style to the textfield. There is no > Win32::GUI::Textfield support of this directly (although there probably > should be). The following will do what you want:=20 >=20 > use Win32::GUI qw(ES_WANTRETURN);=20 >=20 > my $win =3D Win32::GUI::Window->new( > ... > );=20 >=20 > $win->AddTextfield( > ... > -addstyle =3D> ES_WANTRETURN, > );=20 >=20 >=20 > Regards, > Rob. =20 |