Тема: Контекстное меню в VBA
Уважаемые программисты! Не подскажете, как создать в VBA для ACAD контекстное меню. Н-р когда курсор на textBox при нажатии правой кл. м. Я подозреваю, что как то через Win32. Может кто нибудь сталкивался?
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → VBA → Контекстное меню в VBA
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Уважаемые программисты! Не подскажете, как создать в VBA для ACAD контекстное меню. Н-р когда курсор на textBox при нажатии правой кл. м. Я подозреваю, что как то через Win32. Может кто нибудь сталкивался?
Dim a As Long, b As Long
HMENU = CreatePopupMenu()
'????????? ????????? ??????? ? ????
AppendMenu HMENU, MF_STRING, &H200, "1 "
AppendMenu HMENU, MF_STRING Or MF_CHECKED, &H200, "2 "
a = CreatePopupMenu()
b = CreatePopupMenu()
AppendMenu HMENU, MF_STRING, b, "4 "
AppendMenu HMENU, MF_STRING Or MF_CHECKED Or MF_POPUP, a, "????1 "
AppendMenu a, MF_MENUBREAK, b, "3 "
AppendMenu a, MF_GRAYED Or MF_DISABLED, b, "1 "
Только объявить надо функции
этом пример не совсем верен, т.к. надо применять субклассирование, а я с ним еще не разобрался до конца.
объявления:
Public Const MF_CHECKED = &H8&
Public Const MF_APPEND = &H100&
Public Const TPM_LEFTALIGN = &H0&
Public Const MF_DISABLED = &H2&
Public Const MF_GRAYED = &H1&
Public Const MF_SEPARATOR = &H800&
Public Const MF_STRING = &H0&
Public Const MF_MENUBREAK = &H40&
Public Const GWL_WNDPROC = (-4)
Public Const MF_POPUP = &H10&
Public Type POINTAPI
x As Long
y As Long
End Type
Public Declare Function CreatePopupMenu Lib "user32" () As Long
Public Declare Function TrackPopupMenu Lib "user32" (ByVal HMENU As Long, ByVal wFlags As Long, ByVal x As Long, ByVal y As Long, ByVal nReserved As Long, ByVal hWnd As Long, ByVal lprc As Any) As Long
Public Declare Function AppendMenu Lib "user32" Alias _
"AppendMenuA" (ByVal HMENU As Long, ByVal wFlags As _
Long, ByVal wIDNewItem As Long, ByVal lpNewItem As _
String) As Long
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → VBA → Контекстное меню в VBA
Форум работает на PunBB, при поддержке Informer Technologies, Inc