2017-06-14 3 views
1

J'utilise un wxToolBar avec un élément déroulant:Quel événement ouvrir un menu déroulant wxToolBar?

g_toolBar1->AddTool(TOOLBAR_CMD_CONTROL_DROPDOWN,_("Control elements"),MainWin::getBitmap(gearsXPM,"gears"),wxNullBitmap,wxITEM_DROPDOWN); 
custParent->Connect(TOOLBAR_CMD_CONTROL_DROPDOWN,wxEVT_COMMAND_TOOL_CLICKED,wxCommandEventHandler(DrawCanvasSwitcher::OnToolbar),NULL,g_drawCanvas); 
.... // add items to controlMenu here 
g_toolBar1->SetDropdownMenu(TOOLBAR_CMD_CONTROL_DROPDOWN,controlMenu); 

Le menu déroulant apparaît automatiquement lorsque quelqu'un clique-gauche sur la flèche à côté de l'outil. Mais quel événement dois-je envoyer pour ouvrir le menu déroulant par programmation?

Merci!

Répondre

1

Vous pouvez ouvrir un menu, un menu déroulant en appelant PopupMenu:

bool wxWindow::PopupMenu (wxMenu*  menu, 
          const wxPoint& pos = wxDefaultPosition); 

Donc, dans votre cas, il devrait être:

yourWxWindow->PopupMenu(controlMenu); 

ou lorsque vous êtes déjà dans une classe hérite de wxWindow:

PopupMenu(controlMenu);