是否可以在 wxMenu 中动态设置菜单项?
Is it possible to dynamic set menu items in a wxMenu?
您好:我在 wxFrame 中有一个带有此 wxMenus 的菜单栏:文件|编辑|个人。在框架创建期间,wxMenu Personal 有两个 wxMenuItems(信息和需要帮助),它告诉用户必须填写表格并帮助填写表格。在用户用个人信息填写表单后,菜单会填充新项目:发送、清除、检查和删除,deleting/removing 以前的……此时我设法捕获事件,如下所示:
Bind (wxEVT_MENU_OPEN, &MyFrame::processMenuPersonal, this);
// the method
void MyFrame::processMenuPersonal (wxMenuEvent& event) {
wxMenu *menu = event.GetMenu ();
wxMenuItem *item = menu->FindItem (IDM_PERSONAL_EMPTY);
if (item) {
// here I want to dynamic add items and remove the current ones
}
}
关于如何做到这一点有什么想法吗?
是的。只需附加为子菜单并将其视为任何条件语句。这是一个示例
void MyFrame::processMenuPersonal (wxMenuEvent& event) {
wxMenu *menu = event.GetMenu ();
wxMenu *item = menu->GetMenu(YOUR_MENU_INDEX);
menu->AppendSubMenu(item, wxT("User Items"));
if (YouConditionHere) {
item->Append(wxID_ANY, "Item 1")
item->Append(wxID_ANY, "Item 2")
item->Append(wxID_ANY, "Item 3")
}
}
请注意,第 1、2、3 项是您要在处理数据后附加的信息(在您的情况下删除旧条目)
您好:我在 wxFrame 中有一个带有此 wxMenus 的菜单栏:文件|编辑|个人。在框架创建期间,wxMenu Personal 有两个 wxMenuItems(信息和需要帮助),它告诉用户必须填写表格并帮助填写表格。在用户用个人信息填写表单后,菜单会填充新项目:发送、清除、检查和删除,deleting/removing 以前的……此时我设法捕获事件,如下所示:
Bind (wxEVT_MENU_OPEN, &MyFrame::processMenuPersonal, this);
// the method
void MyFrame::processMenuPersonal (wxMenuEvent& event) {
wxMenu *menu = event.GetMenu ();
wxMenuItem *item = menu->FindItem (IDM_PERSONAL_EMPTY);
if (item) {
// here I want to dynamic add items and remove the current ones
}
}
关于如何做到这一点有什么想法吗?
是的。只需附加为子菜单并将其视为任何条件语句。这是一个示例
void MyFrame::processMenuPersonal (wxMenuEvent& event) {
wxMenu *menu = event.GetMenu ();
wxMenu *item = menu->GetMenu(YOUR_MENU_INDEX);
menu->AppendSubMenu(item, wxT("User Items"));
if (YouConditionHere) {
item->Append(wxID_ANY, "Item 1")
item->Append(wxID_ANY, "Item 2")
item->Append(wxID_ANY, "Item 3")
}
}
请注意,第 1、2、3 项是您要在处理数据后附加的信息(在您的情况下删除旧条目)