Форум пользователей Visio

Форум по вопросам применения и программирования в Visio
Текущее время: 29 мар 2024, 15:13

Часовой пояс: UTC + 3 часа [ Летнее время ]


Правила форума


При размещении файлов предпочтительным является формат vsd (а не vsdx/vsdm)
Размещая ваши вложения на форуме не используйте имена файлов содержащих кириллицу, в противном случае файл будет иметь имя .<расширение файла> !

Для форматирования ваших сообщений используйте BBCodes, описание используемых на форуме BBCodes.



Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
 Заголовок сообщения: Как сделать AddIn в VS 2019
СообщениеДобавлено: 14 сен 2020, 23:12 
Не в сети
Бывалый

Зарегистрирован: 19 июн 2015, 22:18
Сообщений: 114
Использую Visio c: 2013
Очков репутации: 21

Добавить очки репутацииУменьшить очки репутации
В VS 2019 нет шаблона проекта для создания AddIn Visio 2010 (да и вообще office 2010).

А у меня все пользователи на Visio 2010.
Что делать? Посоветуйте. Можно ли создать AddIn для Visio 2010 каким-то другим способом, не используя шаблон VS?
Или установить параллельно с VS 2019 - VS 2017?
Интересно то, что в документации по VS 2019 - Visio 2010 упоминается. А вот в шаблонах VSTO только 2013 и выше.
Кто-нибудь писал AddIn в VS 2019 для 2010 office :? ?


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать AddIn в VS 2019
СообщениеДобавлено: 15 сен 2020, 03:26 
Не в сети
Ветеран
Аватара пользователя

Зарегистрирован: 28 апр 2013, 14:03
Сообщений: 963
Откуда: Вена, Австрия
Использую Visio c: 1998
Очков репутации: 100614

Добавить очки репутацииУменьшить очки репутации
1. Оно должно работать для 2010, даже если создашь проект для 2013.
Там нет ничего особо несовместимого (если сам не будешь использовать методы, которых нет в 2010)

2. Можно использовать мой шаблон:
https://marketplace.visualstudio.com/it ... roject2017

Это то же самое что и для предыдущих версий Visual Stuido, только для 2017 и старше (в том числе 2019, в этом году починил)

_________________
Полезные инструменты для создания диаграмм Visio:
https://unmanagedvisio.com/


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать AddIn в VS 2019
СообщениеДобавлено: 15 сен 2020, 13:37 
Не в сети
Бывалый

Зарегистрирован: 19 июн 2015, 22:18
Сообщений: 114
Использую Visio c: 2013
Очков репутации: 21

Добавить очки репутацииУменьшить очки репутации
Спасибо, использовал Ваш шаблон. Видел у него есть много возможностей.

Хотел еще спросить как вызвать диалоговое окно - такое же как ShapeSheet Watch. Ведь оно вызывается именно как диалоговое окно Visio,
и поведение такое же (Docking).

Заметил небольшой баг с окном. Оно вначале открывалось в правом верхнем углу окна активного документа. Но после того, как я его потаскал по окну Visio - оно туда возвращаться уже не хочет. Открывается где-то посередине.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать AddIn в VS 2019
СообщениеДобавлено: 15 сен 2020, 14:22 
Не в сети
Ветеран
Аватара пользователя

Зарегистрирован: 28 апр 2013, 14:03
Сообщений: 963
Откуда: Вена, Австрия
Использую Visio c: 1998
Очков репутации: 100614

Добавить очки репутацииУменьшить очки репутации
Можно поподробнее написать - оно вроде так и должно работать, если создать новый проект с нуля (все по умолчанию)?
Может быть скриншот поможет

_________________
Полезные инструменты для создания диаграмм Visio:
https://unmanagedvisio.com/


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать AddIn в VS 2019
СообщениеДобавлено: 15 сен 2020, 15:57 
Не в сети
Бывалый

Зарегистрирован: 19 июн 2015, 22:18
Сообщений: 114
Использую Visio c: 2013
Очков репутации: 21

Добавить очки репутацииУменьшить очки репутации
Изображение

так окно открывалось пероначально

Изображение

а вот так открывается потом.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать AddIn в VS 2019
СообщениеДобавлено: 15 сен 2020, 16:00 
Не в сети
Бывалый

Зарегистрирован: 19 июн 2015, 22:18
Сообщений: 114
Использую Visio c: 2013
Очков репутации: 21

Добавить очки репутацииУменьшить очки репутации
Все, понял как создавать встроенные окна:

Код:
   public static class WinAPI
    {
       
        [DllImport("user32.dll", SetLastError = true)]
        public static extern IntPtr SetParent(IntPtr hWndChild, int hWndNewParent);

        [DllImport("user32.dll", SetLastError = true)]
        public static extern IntPtr SetWindowLong(IntPtr hwnd, int nIndex, int dwNewLong);

    }


.....

Код:
public void Command1()
        {
            const int GWL_STYLE = (-16);
            const int  WS_CHILD = 0x40000000;
            const int WS_VISIBLE = 0x10000000;

            var vsoWindow = this.Application.ActiveWindow.Windows.Add(
                bstrCaption: "My New Window",
                nFlags : Visio.VisWindowStates.visWSVisible | Visio.VisWindowStates.visWSDockedRight,
                nType : Visio.VisWinTypes.visAnchorBarAddon,
                nWidth : 557, nHeight : 298);

            var frm = new Form1();

            WinAPI.SetWindowLong(frm.Handle, GWL_STYLE, WS_CHILD | WS_VISIBLE);
            WinAPI.SetParent(frm.Handle, vsoWindow.WindowHandle32);


        }


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать AddIn в VS 2019
СообщениеДобавлено: 15 сен 2020, 16:02 
Не в сети
Бывалый

Зарегистрирован: 19 июн 2015, 22:18
Сообщений: 114
Использую Visio c: 2013
Очков репутации: 21

Добавить очки репутацииУменьшить очки репутации
Я сделал открытие окна докнутого справа Visio.VisWindowStates.visWSDockedRight. Работает стабильно.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать AddIn в VS 2019
СообщениеДобавлено: 15 сен 2020, 16:39 
Не в сети
Бывалый

Зарегистрирован: 19 июн 2015, 22:18
Сообщений: 114
Использую Visio c: 2013
Очков репутации: 21

Добавить очки репутацииУменьшить очки репутации
Только не показывает мою форму! Открывается пустое окно.
nbelyh подскажите как привязать окно Window Forms к окну Visio?
Или это как-то делается по-другому?


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать AddIn в VS 2019
СообщениеДобавлено: 15 сен 2020, 18:09 
Не в сети
Бывалый

Зарегистрирован: 19 июн 2015, 22:18
Сообщений: 114
Использую Visio c: 2013
Очков репутации: 21

Добавить очки репутацииУменьшить очки репутации
Код:
    public static class WinAPI
    {
       
        [DllImport("user32.dll", SetLastError = true)]
        public static extern IntPtr SetParent(IntPtr hWndChild, int hWndNewParent);

        [DllImport("user32.dll", SetLastError = true)]
        public static extern IntPtr SetWindowLongPtrA(IntPtr hwnd, int nIndex, int dwNewLong);


....

Код:
       public void Command1(object sender)
        {
            const int GWL_STYLE = (-16);
            const int  WS_CHILD = 0x40000000;
            const int WS_VISIBLE = 0x10000000;

            frm = new Form1(sender);

            var vsoWindow = this.Application.ActiveWindow.Windows.Add(
                bstrCaption: "My New Window",
                nFlags : Visio.VisWindowStates.visWSVisible | Visio.VisWindowStates.visWSDockedRight,
                nType : Visio.VisWinTypes.visAnchorBarAddon,
                nWidth : frm.Width, nHeight : frm.Height);

            var s1 = WinAPI.SetWindowLongPtrA(frm.Handle, GWL_STYLE, WS_CHILD | WS_VISIBLE);
            var s2 = WinAPI.SetParent(frm.Handle, vsoWindow.WindowHandle32);

            frm.Top = 0;
            frm.Left = 0;
            frm.Show();


Не работает. Не хочет мне показывать мое окно и все!
Я поменял из предыдущего кода функцию WinAPI: SetWindowLongPtrA

В Msdn сказано, что она заменяет SetWindowLongA, и доступна как для 32, так и для 64 разрядных. Не помогло.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать AddIn в VS 2019
СообщениеДобавлено: 15 сен 2020, 20:07 
Не в сети
Ветеран
Аватара пользователя

Зарегистрирован: 28 апр 2013, 14:03
Сообщений: 963
Откуда: Вена, Австрия
Использую Visio c: 1998
Очков репутации: 100614

Добавить очки репутацииУменьшить очки репутации
Можешь расшарить код проекта, я тогда смогу возможно что-то подсказать?
Или можно мне в личку или на почту отправить nbelyh@gmail.com

_________________
Полезные инструменты для создания диаграмм Visio:
https://unmanagedvisio.com/


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать AddIn в VS 2019
СообщениеДобавлено: 17 сен 2020, 11:04 
Не в сети
Бывалый

Зарегистрирован: 19 июн 2015, 22:18
Сообщений: 114
Использую Visio c: 2013
Очков репутации: 21

Добавить очки репутацииУменьшить очки репутации
Спасибо, Ваш шаблон проектов Extended Visio Addin Project (VS2017, VS2019) решил мою проблему.
Продолжение темы здесь (Окна Ancor в Visio):
https://visio.getbb.ru/viewtopic.php?f=6&t=1623


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 11 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8


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

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Вы можете создать форум бесплатно PHPBB3 на Getbb.Ru, Также возможно сделать готовый форум PHPBB2 на Mybb2.ru
Русская поддержка phpBB