Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > MDI форма WPF в 1с


Автор: rarxxx 14.9.2010, 11:28
Пишу внешнюю компоненту для 1с 8.1... уже смогу из 1с выполнять методы внешней компоненты и наоборот. и вот возник вопрос а как сделать (немодальное) MDI окно в 1с на Delphi уже нашел решение но немогу его преобразовать в C# WPF(
 
Код

function TAddInObject.Init(pConnection: IDispatch): HResult; stdcall;
begin
  pConnection.QueryInterface(IID_IExtWndsSupport,pExtWindows);
  pExtWindows.GetAppMDIFrame(MDIwnd);
  pExtWindows.GetAppMainFrame(MainWnd);
где pExtWindows : IExtWndsSupport;  MDIwnd, MainWND: HWND;  //хэндлы MDI-окна и главного окна 1С, соответственно


ну эт первый вопрос а второй у WPF окна нет свойства MdiParent - свойство (System.Windows.Forms) (либо есть аналог?) в которое при решении первого вопроса(я надеюсь=) загоняеш MainWnd и получаеш счастье) есть свойство у Application  MainWindow, но у меня нет в компоненте Application )



Автор: CYBERDREAM 14.9.2010, 11:38
на счет второго вопроса: у Window есть свойство Owner

Добавлено через 35 секунд
тему лучше было создать http://forum.vingrad.ru/forum/dotnet-WPF.html

Автор: rarxxx 14.9.2010, 14:08
Спасибо за ответ! 
прост у меня 2 вопроса с WPF только второй связан вот и подумал сюда тему сделать... прост дублировать не хочется, а как перенести... чтот не нашел )


Осталось решить 1 вопрос ) буду оч рад пивас гарантирую )))

Автор: CYBERDREAM 14.9.2010, 14:31
На счет модальности не знаю, но http://wpfmdi.codeplex.com/
а пиво я не пью) smile 

Автор: rarxxx 29.9.2010, 16:06
оказалось что окно WPF Window не сделаешь MDI.
Надо создавать System.Windows.Forms с помощью ElementHost накладывать в него элементы WPF.

вот теперь осталось только найти что ложить в MdiParent =)) 

кто нить может подсказать как получить 1c окно которое туда положить надо) 
внешнюю компоненту делаю по образу и подобию
http://www.rsdn.ru/article/dotnet/cs1c.xml

Автор: CYBERDREAM 29.9.2010, 16:11
а по указанной ссылки разве не сделано по образу и подобию Multiple Document Interface?

Автор: rarxxx 29.9.2010, 16:22
Может конеш я не шарю... но если правильно понял ты имеешь ввиду что MessageBox открывается внутри 1с?
 ток пока его не закроешь работать в 1с нельзя то исть оно модальное а в 1с появляется потому что результат возвращается 1су(мне так кажется).
Код

res = MessageBox.Show(strMessageBoxText, strMessageBoxHeader, butt, icon);


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

хотя возможно я не понял что ты имеешь ввиду ))

Автор: CYBERDREAM 29.9.2010, 17:14
Цитата(rarxxx @ 29.9.2010,  16:06)
оказалось что окно WPF Window не сделаешь MDI.
Надо создавать System.Windows.Forms с помощью ElementHost накладывать в него элементы WPF.

вот теперь осталось только найти что ложить в MdiParent =)) 

кто нить может подсказать как получить 1c окно которое туда положить надо) 
внешнюю компоненту делаю по образу и подобию
http://www.rsdn.ru/article/dotnet/cs1c.xml

ты сказал что нельзся реализовать MDI WPF
а на код плексе вроде есть длл для этого. Это имел ввиду

Автор: rarxxx 29.9.2010, 22:55
ну я имел ввиду класс Window... отказались от Mdi так как тип древняя идея. но можно в Form напихать Wpf контролов.... а уже Form сделать Mdi окном 1с
"а на код плексе вроде есть длл для этого"
 что такое "код плексе"

понимаю что в итоге найду ответ на вопрос как Form окно сделать Mdi в 1с ... ) прост пытаюсь ускорить решение... нужно еще функционал компоненты доделать )

Автор: rarxxx 30.9.2010, 14:14
ну вот вопрос закрыт ))) smile 

Автор: rarxxx 30.9.2010, 14:30
_у

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)