CWnd.SubclassWindow メソッドを使用する MFC で記述された C++ コードの一部を、Borland C++ Builder コードに変換しようとしています。サブクラス化 (TForm オブジェクトを使用したサブクラス化) の方法を知っている人はいますか?私たちは完全に立ち往生しています。どんなポインタでも大歓迎です!ティア!
仕様:
TForm から継承する Borland C++ で記述された既存の基本クラスがあります。これは、TForm から継承するすべてのフォームに特定のルック アンド フィールを与えるために使用されます (たとえば、WM_NCPAINT と WM_NCHITTEST を重く処理します)。
ここで、このコードを使用して、他の言語 (正確には MSVC++/MFC と C#) で記述されたフォームに同じルック アンド フィールを提供したいと考えています。
すべてのコードを書き直す代わりに、Windows のサブクラス化を使用することは素晴らしいアイデアだと考えました。次に、すべての既存のテスト済みコードを DLL に詰め込み、それを hWnd で呼び出すだけで、そのウィンドウは自動的に新しいルック アンド フィールを取得します。
なぜこれが不可能なのかは、私にはわかりません。私自身、Borland C++ でコードを書いているわけではありません。Borland C++ 開発者に私が何を望んでいるのかを示すために、MFC でスタブをわずか数分で作成しました。彼らは MFC の CWnd::SubclassWindow メソッドを模倣しようとして何日も費やしましたが、成功しませんでした。
私が理解していることから、問題は、「new TForm()」を実行すると、新しいウィンドウが停止する前に自動的に作成されることです。そのため、WindowProc を置き換えると機能しますが、不要な TForm ウィンドウが画面上に浮かんで使用できなくなります!!!!