Подскажите какой класс? Topic is solved

Это русская секция форума wxWidjets. В этой секции вы можете обсуждать любые вопросы, связанные с wxWidgets на вашем родном языке.
Post Reply
alexandros
Earned a small fee
Earned a small fee
Posts: 20
Joined: Mon Jul 25, 2011 4:06 pm

Подскажите какой класс?

Post by alexandros »

В каком классе реализовано меню которое всплывает при щелчке правой кнопкой мыши?
(какое меню? щелкни по брозеру правой кнопкой мыши и увидишь!)
Сенкс :-))
Mojo
Super wx Problem Solver
Super wx Problem Solver
Posts: 401
Joined: Wed Sep 21, 2005 8:17 am
Location: Rostov-on-Don, Southern Russia

Re: Подскажите какой класс?

Post by Mojo »

Контекстное меню, на самом деле это обычное меню..... только позиционируется оно в месте клика правой кнопкой мышки.....

У меня был такой пример в одной программулине.....

Code: Select all


/// В заголовочном файле mainframe.h объявляем:

enum
{
    wxID_ADD_NEW_COL_LEFT = wxID_HIGHEST + 1,
	wxID_ADD_NEW_COL_RIGHT,
	wxID_ADD_NEW_ROW_TOP,
	wxID_ADD_NEW_ROW_BOTTOM,
	wxID_DEL_COL,
	wxID_DEL_ROW,
	wxID_SHOW_CELL_PROP
};

/// В файле главного окна mainframe.cpp две функции члены-класса

/// кликаем в гриде по заголовку..... и выскакивает контекстное меню.....
void MainFrame::LabelRightClick( wxGridEvent& event )
{
	wxPoint point = event.GetPosition();

	if(m_grid1->IsSelection())
	{
		ShowContextMenu(point);
	}

}

/// Само меню....

void MainFrame::ShowContextMenu(const wxPoint& pos)
{
	wxMenu menu;

	menu.Append(wxID_ADD_NEW_COL_LEFT, _("Добавить колонку слева"));
	menu.Append(wxID_ADD_NEW_COL_RIGHT, _("Добавить колонку справа"));
	menu.Append(wxID_ADD_NEW_ROW_TOP, _("Добавить ряд сверху"));
	menu.Append(wxID_ADD_NEW_ROW_BOTTOM, _("Добавить ряд снизу"));
	menu.Append(wxID_DEL_COL, _("Удалить колонку"));
	menu.Append(wxID_DEL_ROW, _("Удалить ряд"));
	menu.AppendSeparator();
	menu.Append(wxID_SHOW_CELL_PROP, _("Свойства ячейки"));

	Connect(wxID_ADD_NEW_COL_LEFT, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrame::OnMenuAddColClick ) );
	Connect(wxID_ADD_NEW_COL_RIGHT, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrame::OnMenuAddColClickRight ) );
	Connect(wxID_ADD_NEW_ROW_TOP, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrame::OnMenuAddRowClick ) );
	Connect(wxID_ADD_NEW_ROW_BOTTOM, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrame::OnMenuAddRowClickBottom ) );
	Connect(wxID_DEL_COL,    wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrame::OnMenuDelColClick ) );
	Connect(wxID_DEL_ROW,    wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrame::OnMenuDelRowClick ) );
	Connect(wxID_SHOW_CELL_PROP, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrame::OnContextMenuCellProp ) );

	PopupMenu(&menu, pos.x, pos.y);
}


Win XP HE SP3, Vista
Xubuntu 12.04 LTS
wxWidgets-2.9.5
wxWidgets-3.0.0
alexandros
Earned a small fee
Earned a small fee
Posts: 20
Joined: Mon Jul 25, 2011 4:06 pm

Re: Подскажите какой класс?

Post by alexandros »

PopupMenu(); - самое то что искал
Спасибо))
Post Reply