こんばんわ
VisualStudio6.0(VC++) + SDI + WinXp
(ツールバーの設定をIE風にして)
アプリケーションを作成しています。
今、ダイアログバーにスライダーを配置し、OnHScrollで動作を得ようと
したのですが、反応がありませんでした。(デバックでもとんできません。)
どうしたら、取得できるのでしょうか?
また、上の質問とは直接関係はありませんが、
CDC *pDC = GetDC();
とした場合、pDCには、何のDCが入っているのでしょうか?
クライアント領域に表示された画像のDCでしょうか?
以上、アドバイスいただけたら幸いです。
よろしくお願いいたします。
> 今、ダイアログバーにスライダーを配置し、OnHScrollで動作を得ようと
> したのですが、反応がありませんでした。(デバックでもとんできません。)
OnHScroll をどのクラスで捕まえようとしましたか?
フレームやビューで捕まえようとしても無理な気がします。
ダイアログバーで捕まえないと。
で、ダイアログバーの元になっているダイアログのクラスを作り、
OnHScroll を捕まえるようにしてみましたが…失敗。
考えてみたら、この作ったクラスのインスタンスが作られてない。
そこで、CDialog から派生していたのを CDialogBar から派生するように書き換え、
フレームのメンバにあるダイアログバークラスを、CDialogBar からこのクラスに変更し
たところ、捕まえられるようになりました。
OnInitDialog が呼ばれていないせいか、DDX が利きませんけど。
> CDC *pDC = GetDC();
> とした場合、pDCには、何のDCが入っているのでしょうか?
それを呼び出した場所によって変わります。
上記コードは
CDC *pDC = this->GetDC();
の略です。
this がフレームであればフレームの DC だろうし、ダイアログであればダイアログの
DC だろうし。
ダイアログバーのスライダーに関しては、Notify関数で解決いたしました。
アドバイスどうもでした。