Здравствуйте dron_bkk, вы писали:
DB>Вот столкнулся с сабжевой проблемкой. Меню создал через редактор ресурсов, но при загрузке/установке ширина меню оказывается равной одному символу :(. При этом оно работает нормально и число элементов соответствует ожидаемому. Вот кусочек :
DB>void CMyListCtrl::OnRButtonDown(UINT nFlags, CPoint point) DB>{ DB> int i; DB> CMenu m_menu; DB> CString str; DB> i = CListCtrl::HitTest(point, NULL); DB> if (i != -1){ DB> if (m_menu.LoadMenu(IDR_MENU_CONTROL) == 0) DB> AfxMessageBox("Error at loading control menu"); DB> POINT pp = point; DB> ClientToScreen(&pp); DB> m_menu.TrackPopupMenu(TPM_CENTERALIGN|TPM_RIGHTBUTTON, pp.x, pp.y, this, NULL); DB> // Set new menu. DB> SetMenu(&m_menu); DB> m_menu.DestroyMenu(); DB> } DB> CListCtrl::OnRButtonDown(nFlags, point); DB>}
Если тебе надо показать котекстное меню, то делать это надо в обработчике WM_CONTEXTMENU
за исключением TreeCtrl который слегка (а может и не слегка:) глючит
и там контекстное меню лучше показывать в ответ на NM_RCLICK