Je cherche un moyen de créer une fenêtre flottante dans ArcMap. Pour donner un exemple, regardez simplement la fenêtre de l'outil Identifier.
Flottant signifie qu'il reste en permanence devant le document ArcMap et que l'utilisateur peut continuer à travailler avec ArcMap. Je sais que l'interface IDockableWindowDef peut être utilisée pour créer des fenêtres ancrables qui peuvent également flotter, mais je ne veux pas qu'elles soient ancrées . À ma connaissance, il n'est pas possible d'empêcher les formulaires créés par IDockableWindowManager de s'arrimer si, par exemple, l'utilisateur les pousse vers la bordure de la fenêtre ArcMap.
Des idées?
La solution consistait à rechercher des mots clés comme fenêtre enfant et MDI. HTH
La solution du problème semble être aussi simple que la réponse de @ llcf :
MyForm form = new MyForm();
form.Show(NativeWindow.FromHandle(new IntPtr(m_application.hWnd)));
la source
Réponses:
Si en .net, je pense que les exemples que j'ai vus utilisent une classe d'assistance comme ci-dessous:
la source
J'ai trouvé la réponse à ce problème à l'aide des anciens forums ESRI. Je venais d'utiliser les mauvais mots clés jusqu'à présent: / La solution réside dans SetWindowLong ():
Je ne suis pas sûr que la compatibilité 64 bits soit correctement implémentée car SetWindowLongPtr () est censé remplacer SetWindowLong () mais je n'ai pas pu le faire fonctionner sur ma machine 64 bits. Toujours obtenu une EntryPointNotFoundException. Mais au moins cela fonctionne avec ma configuration de développement.
la source
Si vous utilisez .NET, la création d'un formulaire Windows non modal et la définition de la propriété TopMost sur true est la meilleure solution. Vous souhaiterez également définir la propriété Parent du formulaire sur l'application ArcMap.
la source