私は、メインウィンドウとメニューオプションから開いたいくつかのmdi子で構成されるレガシーアプリをCで書いています。新しいmdiの子をC#で記述できるようにするために、Cコードで呼び出され、C#コードを呼び出すC++ COM相互運用レイヤーを作成しました。次に、SetParent APIを使用して、Cメインウィンドウを、C#ウィンドウの新しい親が開かれた状態に設定します。これは動作するようです - C#のウィンドウは、メインウィンドウのMDIの子のように動作します。しかし、子ウインドウは正しくペイントされず、他のウインドウを移動させたり、メインウインドウの端に移動したりすると悪化します。他のウインドウの一部でペイントされるか、 。さらに、画面は非常にうまく反応しません。たとえば、あるテキストボックスから別のテキストボックスにタブすることはできません。SetParent APIで作成されたMDI子の再ペイントの問題
私のソリューションのアーキテクチャーには疑問の余地はありませんが(私にはこれが唯一の方法だと思いますが)、SetParentによって作成された子供でこのような問題を見たことがあるなら、それを修正することができました。
+1は明らかに言葉の問題です。しかし、「これは唯一の方法です」はしばしば真実ではありません。 ;)へようこそSO – dss539
フェアポイント!私はすでにこの問題に焦点を当てようとしていただけで、私はすでに試みていて、いくつかの「他の方法」を排除していました。 – AlfieAmalfi