SHANDLE
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору На С++ это выглядит так: Код: HMENU hPopup = CreatePopupMenu(); AppendMenu(hPopup, 0, MF_SEPARATOR, 0); POINT pt; GetCursorPos(pt); TrackPopupMenu(hPopup, 0, pt.x, pt.y, m_hWnd, 0); DestroyMenu(hPopup); | Меню состоит из одного-единственного пункта - разделитель. Если программист предусмотрел возможность настраивать меню, добавлять/удалять команды, то нужно читать и изучать документацию в каждом конкретном случае, как это делать. Если не предусмотрел, то либо ничего нельзя сделать, либо, если меню находиться в ресурсах исполняемого файла, то отредактировать ресурс. Код: HMENU hPopup = LoadMenu(AfxGetApp()->m_hInstance, MAKEINTRESOURCE(IDM_MENU_ID)) POINT pt; GetCursorPos(pt); TrackPopupMenu(hPopup, 0, pt.x, pt.y, m_hWnd, 0); DestroyMenu(hPopup); | Вот это ресурс IDM_MENU_ID нужно отредактировать. Сепаратор ни на что не повлияет, только на вид меню. В случае с проводником, чтобы добавить в контекстное меню дополнительную команду, то только одним реестром не обойтись. Реестр нужен чтобы зарегистрировать расширение проводника, которое представляет собой ActiveX и собран в виде dll. Он реагирует на запросы проводника. Всего из 4. 1 Инициализация. 2 Добавление дополнительных пунктов в меню проводника. 3 Формирование строки подсказки. 4 Выполнение команды, когда пользователь выберет один из добавленных пунктов. Но при этом порядок пунктов в меню не гарантирован. Добавленные пункты появятся, а вот в каком месте меню - это уже не гарантируется, хотя можно приложить дополнительные усилия (программиста), чтобы привязать эти пункты к всегда существующим пунктам. |