0

現在、Windows api の GUI ラッパーを作成しています ( qt または mfc は使用できません)。ライブラリ自体は非常に基本的なものです。ウィンドウの共通コントロールをサブクラス化した後 (およびそれらをクラスにラップした後)、問題に直面しました。私の知る限り(そして私が間違っていることを願っています)、WM_CTLCOLOREDITなどのメッセージを処理できるのは親コントロールだけです。しかし、私はこのようなものを書くことができるようにしたい:

myedit->SetBkColor ( RGB ( 0, 0, 0 ) );

まったく実装することは可能ですか (たとえば、Windows フォームのように)、または新しいコントロールを最初から作成し、自分で絵を書く必要がありますか?

#535 さん、ありがとうございます。

4

1 に答える 1

3

あなたはそれを行うことができますが、それはかなりの量の仕事です。基本的な考え方は、サブクラス化するコントロールの親として機能する別のウィンドウを作成することです。その中で、通知メッセージ(WM_CTLCOLOREDITなど)が親によって処理されているのか、サブクラス化されたコントロール自体によって処理されているのかを追跡します。親によって処理されている場合は、メッセージを渡すだけですが、サブクラス化されたコントロール自体によって処理されることになっている場合は、メッセージをコントロールに反映します。

于 2009-10-19T20:31:38.197 に答える