Rambler's Top100
Главная
Новости
Статьи
Форумы
Книги
Коды
Сообщество
Блоги
О нас
 

Логин

Email:
  Пароль:

Войти
Зарегистрироваться
Забыл пароль

Поиск

 Искать :
 
Вперед

Сообщение

Varg


Архифлеймер

Зарегистрирован:
18 February 2005
Сообщения: 2733
Примеры кода: 0
 

Дочернее окно внутри стороннего приложения

15 October 2007 09:56  


> сделал как вы посоветовали, но эффекта не получил - форма не стала дочерней

в примере ниже MainForm - это имитация главного окна ArcGis. Имея ссылку на IChildFormProxy можно вызвать метод SetParent, в который надо передать hwnd главного окна ArcGis.
using System;
using System.Windows.Forms;

public partial class MainForm : Form
{
    public MainForm()
    {
        this.Menu = new MainMenu(new MenuItem[] {
			  	 new MenuItem("Test", new EventHandler(Test)),
			});
    }

    private void Test(object sender, EventArgs e)
    {
        IChildFormProxy cfa = new ChildFormProxy();
        cfa.SetParent(this.Handle);
    }
}

public interface IChildFormProxy
{
    void SetParent(IntPtr hwnd);
}

public class Win32Window : IWin32Window
{
    public Win32Window(IntPtr hwnd)
    {
        _Handle = hwnd;
    }
    public IntPtr Handle
    {
        get { return _Handle; }
    }
    private IntPtr _Handle;
}

public class ChildFormProxy : IChildFormProxy
{
    public void SetParent(IntPtr hwnd)
    {
        Form cf = new Form();
        cf.ShowDialog(new Win32Window(hwnd));
    }
}


IChildFormProxy можно определить с атрибутом [ComVisible(true)] и т.д. Т.е. реализовать COM-объект и вызвать его из ArcGis.



Данное сообщение получено с сайта GotDotNet.RU
Последний раз редактировалось 15 October 2007 09:56
Наверх
  



Winforms

 Дочернее окно внутри стороннего приложенияFeddmiser  14 October 2007 11:00
 Дочернее окно внутри стороннего приложенияVarg  14 October 2007 17:45
 Дочернее окно внутри стороннего приложенияgaidar  14 October 2007 15:08
 Дочернее окно внутри стороннего приложенияFeddmiser  14 October 2007 16:29
 Дочернее окно внутри стороннего приложенияVarg  14 October 2007 18:06
 Дочернее окно внутри стороннего приложенияFeddmiser  15 October 2007 02:45
 Дочернее окно внутри стороннего приложенияVarg  15 October 2007 10:10
 Дочернее окно внутри стороннего приложенияVarg  15 October 2007 09:56
 Дочернее окно внутри стороннего приложенияFeddmiser  18 October 2007 11:23
 Дочернее окно внутри стороннего приложенияFeddmiser  19 October 2007 15:30
 Дочернее окно внутри стороннего приложенияДимон  15 October 2007 10:04
 
Наш Киев

Apartments for Rent

Rambler's Top100
Рейтинг@Mail.ru
Идея: Dimon aka Manowar Программирование: Dimon aka Manowar Дизайн: Dan Lebedev
Хостинг от компании Parking.ru
Карта сайта