我正在使用wxXmlResource()
在PHP程序中加载wxWidgets资源。这很好地加载了窗口,但我不知道如何获得对命名窗口元素的对象引用。
这是我的代码:
// 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 :(得分:1)
您需要使用wxDynamicCast函数将对象强制转换为正确的类型,如:
$textCtrl = wxDynamicCast(
$frame->FindWindow('m_staticText12'),
"wxStaticText"
);