07.02.2012, 19:50 | #1 |
Участник
|
Как в коде получить ProjectNode проекта, в котором было вызвано контекстное меню?
Субж (см. вопрос).
SysContextMenu возвращает TreeNode из AOT, а нужен именно проект. Можно идеологию, запрограммирую сам |
|
07.02.2012, 22:46 | #2 |
Участник
|
Штатно, по-моему, никак - если только через Win32 API как-то шерстить окошки, из заголовка окна проекта получать его название и дальше искать по нему...
|
|
07.02.2012, 22:49 | #3 |
Участник
|
Тоже склоняюсь к такому варианту... Если никто не подскажет иного, так и сделаю.
|
|
10.02.2012, 11:41 | #4 |
Участник
|
Пока не нашёл ничего лучшего, как перебрать все окна текущего Workspace'а. Первым попавшимся проектным окном и будет верхнее в Z-последовательности окно.
X++: HWND hWndParent = WinAPI::findWindowEx(infolog.hWnd(), 0, 'MDIClient', ''); HWND hWnd; str caption; str projName; ; // активные/открытые проекты for (hWnd = WinAPI::findWindowEx(hWndParent, 0, 'AxMDIChildWindow', ''); hWnd; hWnd = WinAPI::findWindowEx(hWndParent, hWnd, 'AxMDIChildWindow', '')) { caption = WinAPI::getWindowText(hWnd); if (strStartsWith(caption, "@SYS4534")) { projName = strDel(caption, 1, strLen("@SYS4534") + 1); //WinAPI::flashWindowEx(hWnd, 1, 5, 200); break; } } X++: for (hWnd = WinAPI::findWindowEx(hWndParent, 0, 'AxMDIChildWindow', ''); hWnd; hWnd = WinAPI::findWindowEx(hWndParent, hWnd, 'AxMDIChildWindow', '')) { caption = WinAPI::getWindowText(hWnd); if (strStartsWith(caption, "@SYS4534")) Projects.add(strDel(caption, 1, strLen("@SYS4534") + 1)); } Projects.selection(0); Последний раз редактировалось Ar; 10.02.2012 в 11:47. Причина: дополнение |
|
Теги |
projectnode, проекты |
|
Похожие темы | ||||
Тема | Ответов | |||
Evgeny Arlionak: Ссылки на главное меню: как получить? | 2 | |||
Контекстное меню. | 0 | |||
Работа с главным меню в Axapta | 0 | |||
Удаление проекта | 0 | |||
Наброски команды IT2B | 6 |
|