> "SetClassLong(hxx, GCL_HBRBACKGROUND, xxx)"は、どういった時に使用するのでしょうか?
SetClassLong()はウインドウクラスの値を変更する関数です。
その為、ウインドウクラスの背景色を変更したり、カーソルを変更したりすることが可能です。
ウインドウクラスを意識するのはCreateWindowEx()でウインドウを作成した場合ですので、CreateWindowEx()でウインドウを作成した場合に使用します。
> 又、なぜ維持出来無いのでしょうか?
Callback.wbpを開いてみれば解りますが、RADツールでウインドウを作成した場合、各ウインドウで同一のウインドウクラスを使用しています。
(ダイアログで共通?)
その為、1ウインドウの背景色を変更すると他のウインドウの背景色も変更
されてしまいます。
このような場合は、ウインドウクラスを別々に作成することで回避できるようです。
以下のURLにウインドウクラスを別々に作成した際のサンプルを公開します。
参考にしてください。
http://briefcase.yahoo.co.jp/bc/hanchan ... ip&.src=bc
MainWnd.sbpの先頭にある
#define TESTMODE
をコメントアウトすると、別々のウインドウクラスを使用して画面を動かします。
コメントアウトしないと、ウインドウクラスを共有した動きになります。