У меня есть старое приложение, написанное на C, которое состоит из главного окна и нескольких дочерних элементов mdi, открытых из опций меню.Чтобы позволить новым дочерним элементам mdi быть написанными на C #, я создал COM-слой взаимодействия C ++, который вызывается кодом C и, в свою очередь, вызывает код C #.Затем я использую API SetParent, чтобы установить главное окно C как новый родитель любого открытого окна C #.Кажется, это работает - окно C # ведет себя как дочерний элемент MDI главного окна.НО, дочернее окно не рисует должным образом и только ухудшается, если вы переместите другие окна поверх него или переместите его к краям основного окна - оно окрашивается частями других окон или оставляет кусочки себя, лежащие вокруг, при движении,Кроме того, экран не очень хорошо реагирует, например, вы не можете переходить из одного текстового поля в другое.
Пожалуйста, не подвергайте сомнению архитектуру моего решения (поверьте мне, это единственный способ), но если выЯ когда-либо видел подобную проблему с ребенком, созданным SetParent, я бы хотел услышать, если бы вам удалось это исправить.