| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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 но не работает |
| Автор: suborg 6.8.2002, 06:26 |
| EnableMenuItem Enables, disables, or dims (grays) a menu item. |