AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Программирование
DAX
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.06.2010, 12:14   #1  
del_negrozzz is offline
del_negrozzz
Участник
 
35 / 10 (1) +
Регистрация: 11.07.2007
Я думаю, что Вы взялись за невероятно сложную задачу, не имея определенных знаний.

хендл окна можно получить с помощью функций WinAPI FindWindow и FindWindowEx.
Иными словами,
Вам нужно передавать в функцию Show некий параметр например (например название текущего окна) по которому можно с помощью выше указанных функций определить хендл окна вызвавшего метод Show грида. Далее тоже непростое дело - внедрить контрол в чужое окно, но и это можно сделать. Однако самое сложное, как мне кажется, будет дальше, когда Вам нужно будет управлять набором данных и в гриде и так чтобы клиент нава был в курсе ваших манипуляций.
Ну например, вы в гриде удалили строку, надо чтобы не просто она удалилась а еще и отработал триггер OnDelete. Т.е. нужно хорошо разбираться в во внутренних функциях клиента нава, это как минимум дизассемблирование или отладка в SoftIce.

Т.е. вы должны знать и уметь:
1. WinApi (технологии перехвата сообщений, субклассирование и тд)
2. Понимать как работает клиент NAV.
2. Уметь пользоваться отладчиками и дизасемблерами
3. ASM
Старый 18.06.2010, 12:18   #2  
del_negrozzz is offline
del_negrozzz
Участник
 
35 / 10 (1) +
Регистрация: 11.07.2007
Цитата:
Сообщение от del_negrozzz Посмотреть сообщение
Я думаю, что Вы взялись за невероятно сложную задачу, не имея определенных знаний.

хендл окна можно получить с помощью функций WinAPI FindWindow и FindWindowEx.
Иными словами,
Вам нужно передавать в функцию Show некий параметр например (например название текущего окна) по которому можно с помощью выше указанных функций определить хендл окна вызвавшего метод Show грида. Далее тоже непростое дело - внедрить контрол в чужое окно, но и это можно сделать. Однако самое сложное, как мне кажется, будет дальше, когда Вам нужно будет управлять набором данных и в гриде и так чтобы клиент нава был в курсе ваших манипуляций.
Ну например, вы в гриде удалили строку, надо чтобы не просто она удалилась а еще и отработал триггер OnDelete. Т.е. нужно хорошо разбираться в во внутренних функциях клиента нава, это как минимум дизассемблирование или отладка в SoftIce.

Т.е. вы должны знать и уметь:
1. WinApi (технологии перехвата сообщений, субклассирование и тд)
2. Понимать как работает клиент NAV.
2. Уметь пользоваться отладчиками и дизасемблерами
3. ASM
Да, кстати, Spy++ может подкинуть идею об получении хедла окна
Старый 18.06.2010, 18:25   #3  
xyligan is offline
xyligan
Участник
 
19 / 10 (1) +
Регистрация: 12.05.2010
Получилось вставить на форму.
В C#, в конструкторе формы должен быть написан следующий код:
hFocus = GetFocus(); // API-шная функция
_ParentHwnd = hFocus;

След. задача, как обрабатывать события из компонента в навижн.
 

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 18:48.