実行時にウィンドウのコントロールを別のコントロールに置き換えます

StackOverflow https://stackoverflow.com/questions/2426235

質問

ウィンドウとその豊富なコントロールのハンドルがあります。上記のコントロールを自分のコントロールに置き換えることができますか?元のものが、つまり、窓の一部であり、そのようなものになるように振る舞うことを望んでいます。

シナリオをさらに詳しく説明します - 現在、その機能の1つがテキストエディターであるアプリケーションを分解しています。私の現在の(制限付き)環境には、手順へのさまざまなフックがあり、そのうちの1つはエディターウィンドウにハンドルを生成します。もう1つは、windowホストをコントロールするrichedit20aのハンドルを調達することができます。

私がやりたいのは、これが私自身(おそらくその.NET等価)でコントロールを上書きし、アプリのgetWindowText呼び出しにパッチして新しいものを使用します。実装するには、C#/Managed C ++でクラスライブラリを作成し、アプリ(管理されていないC ++で記述されている)にインポートする予定です。

また、テキストエディターのインスタンスの数が任意になる場合があります。

役に立ちましたか?

解決

それはあまりにも複雑すぎるように聞こえます。そのwndprocを交換するだけです(GWL_WNDPROC)、何も転送してから、HWNDを無効にします。それは再描画を強制します(WM_PAINT)それをキャプチャできます。所有者はおそらく気づかないでしょう(もちろん、彼らもそれを引っ掛けていない限り)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top