【发布时间】:2017-06-14 12:26:55
【问题描述】:
我有一个 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);
在某些情况下,我通过调用 PopupMenu() 以编程方式打开下拉菜单。我的问题是:这个函数在当前鼠标位置打开菜单,而不是像带有向下箭头的按钮那样在工具下方。
那么:如何获取工具 TOOLBAR_CMD_CONTROL_DROPDOWN 的位置和大小,以便计算下拉菜单的合适位置,以便将其交给 PopupMenu()?
谢谢!
【问题讨论】:
-
您在使用
wxComboBox类吗?如果是这样:尝试controlMenu.Popup()(see here) 而不是PopupMenu(controlMenu)。是否如您预期的那样工作? -
Andre Kampling:不,不是 wxComboBox,而是在 wxToolBar 中使用 wxMenu 来创建下拉工具
标签: c++ drop-down-menu toolbar wxwidgets