Perl - Win32 :: Gui - Определяет текстовое содержимое текстового поля, которое имеет фокус - PullRequest
0 голосов
/ 28 мая 2018

Я определил главное окно $mw, в которое я поместил несколько текстовых полей, в которых пользователь может предоставить информацию.Как только пользователь нажимает RETURN, я хочу определить поле, в котором находился фокус, и прочитать его текстовое содержимое для дальнейшей обработки.

Вот код, как я определил текстовые поля:

$mw->AddLabel (
    -name   => "lblSAP",
    -top    => 5,
    -left   => 10,
    -width  => 80,
    -text   => "identity no.",
);

$mw->AddTextfield (               # text field 1
    -name   => "txtSAP",
    -pos    => [ 5, 20 ],
    -size   => [ 80, 20 ],
    -tabstop    => 1,
);

$mw->AddLabel (
    -name   => "lblDokar",
    -top    => 5,
    -left   => 95,
    -width  => 40,
    -text   => "dokar",
);

$mw->AddTextfield (               # text field 2 (there are more)
    -name   => "txtDokar",
    -pos    => [ 90, 20 ],
    -size   => [ 40, 20 ],
    -tabstop    => 1,
    -text   => 'DRW',
);

Я пробовал метод GetFocus(), который возвращает дескриптор, но я не знаю, как использовать этот дескриптор, чтобы получить текст из текстового поля (я даже не знаю, вернул ли метод дескрипторглавное окно или элемент управления, который получил фокус: - (.

Я попробовал это так:

my $handle = $mw->GetFocus();    # get handle of the focusse control
my $txt_text = $handle->Text();   # get text of the focussed control

Это не сработало.

Я пропустилметод, который возвращает имя вместо дескриптора или как можно получить доступ к элементам управления по их дескриптору?

...