Как извлечь отдельные элементы управления из wxFrame в wxPHP?

Я загружаю ресурсы wxWidgets в программу PHP, используя wxXmlResource(), Это очень хорошо загружает окно, но я не уверен, как получить ссылку на объект на именованные элементы окна.

Вот мой код:

// Load the window
$resource = new wxXmlResource();
$resource->InitAllHandlers();
$resource->Load(__DIR__ . '/forms.xrc.xml');

// Get a reference to a window
$frame = new wxFrame();
$resource->LoadFrame($frame, NULL, 'frmOne');
$frame->Show();

// Fetch a named element - the class returned is the base class
$textCtrl = $frame->FindWindow('m_staticText12');
echo get_class($textCtrl) . "\n";

$textCtrl предмет должен быть wxStaticText объект, но он был возвращен как wxWindow (который является родительским классом). Поскольку он не приводится как правильный тип объекта, я не могу вызывать методы, принадлежащие к собственному классу элемента управления (например, Wrap()).

я думаю FindWindow() вызов работает, так как если я умышленно получаю неправильное имя, он возвращает null,

Что я делаю неправильно?

0

Решение

Вам нужно будет использовать функцию wxDynamicCast для приведения объекта к нужному типу, например:

$textCtrl = wxDynamicCast(
$frame->FindWindow('m_staticText12'),
"wxStaticText");
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]