Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Контекстное меню!!!


Автор: Beluy 1.8.2002, 16:00
Сделал контекстное меню, но оно откривается на DblClk.(Visual C). Что сделать что бы открывалось на RightClk?

Автор: dead_ricky 1.8.2002, 16:24
А по подробнее можно, ну смысле кусок твоего кода. Я когда-то тоже его делал - у меня ваще на F12 только открывалось (шутка) :).

Автор: suborg 1.8.2002, 21:23
я через ON_WM_RBUTTONDOWN() делал

Автор: Beluy 2.8.2002, 01:20
Спасибо, но я уже разобрался:  
void CLeftView::OnRclick(NMHDR* pNMHDR, LRESULT* pResult)
{
TRACE0("CMyTreeCtrl::OnRClick()\n");
SendMessage(WM_CONTEXTMENU, (WPARAM) m_hWnd, GetMessagePos());
SendMessage(WM_NOTIFY
, (WPARAM) m_hWnd, GetMessagePos());
*pResult = 1;

}
void CLeftView::OnContextMenu(CWnd* pWnd, CPoint point)
{
CTreeCtrl   &tTree = this->GetTreeCtrl ();
if (point.x == -1 && point.y == -1)
point = (CPoint) GetMessagePos();
ScreenToClient(&point);
UINT uFlags;
HTREEITEM htItem;
htItem = tTree.HitTest( point, &uFlags );
if( htItem == NULL )
return;
CMenu menu;
CMenu* pPopup;
menu.LoadMenu(137);
pPopup = menu.GetSubMenu(0);
ClientToScreen(&point);
pPopup->TrackPopupMenu( TPM_LEFTALIGN, point.x, point.y, this );
}
Но у меня вторая проблема:
Не могу сделать что бы позиции этого контекстного меню когда мне нужно били активными или неактивными.
Делаю UPDATE_COMMAND_UI но не работает??? :baaa

Автор: suborg 6.8.2002, 06:26
EnableMenuItem Enables, disables, or dims (grays) a menu item.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)