Estou procurando uma maneira de criar uma janela flutuante no ArcMap. Para dar um exemplo, basta olhar para a janela da ferramenta Identify.
Flutuar significa que ele fica sempre na frente do documento do mapa e que o usuário pode continuar trabalhando com o ArcMap. Sei que a interface IDockableWindowDef pode ser usada para criar janelas encaixáveis que também podem flutuar, mas não quero que elas encaixem . Que eu saiba, não é possível impedir que os formulários criados pelo IDockableWindowManager sejam encaixados se, por exemplo, o usuário os empurrar para a borda da janela do ArcMap.
Alguma ideia?
A solução foi procurar palavras-chave como janela filho e MDI. HTH
A solução do problema parece ser tão fácil quanto a resposta do @ llcf :
MyForm form = new MyForm();
form.Show(NativeWindow.FromHandle(new IntPtr(m_application.hWnd)));
arcmap
arcobjects
c#
E um
fonte
fonte
Respostas:
Se em .net eu acho que os exemplos que eu vi usam uma classe auxiliar como abaixo:
fonte
Encontrei a resposta para esse problema com a ajuda dos fóruns antigos da ESRI. Só tinha usado as palavras-chave erradas até agora: / A solução está em SetWindowLong ():
Não tenho certeza se a compatibilidade de 64 bits foi implementada corretamente porque SetWindowLongPtr () supostamente substituiu SetWindowLong (), mas não consegui fazê-lo funcionar na minha máquina de 64 bits. Sempre obteve um EntryPointNotFoundException. Mas pelo menos isso funciona com minha configuração de desenvolvedor.
fonte
Se você estiver usando o .NET, criar uma Formulário do Windows sem modelo e definir a propriedade TopMost como true é a melhor opção. Você também deseja definir a propriedade Parent do formulário como o aplicativo ArcMap.
fonte