ダイアログバーに配置したスライダー動作を得るには – プログラミング – Home

ダイアログバーに配置したスライダー動作...
 
通知
すべてクリア

[解決済] ダイアログバーに配置したスライダー動作を得るには


onajihoko
 onajihoko
(@onajihoko)
ゲスト
結合: 21年前
投稿: 5
Topic starter  

こんばんわ

VisualStudio6.0(VC++) + SDI + WinXp
(ツールバーの設定をIE風にして)
アプリケーションを作成しています。

今、ダイアログバーにスライダーを配置し、OnHScrollで動作を得ようと
したのですが、反応がありませんでした。(デバックでもとんできません。)
どうしたら、取得できるのでしょうか?

また、上の質問とは直接関係はありませんが、
CDC *pDC = GetDC();
とした場合、pDCには、何のDCが入っているのでしょうか?
クライアント領域に表示された画像のDCでしょうか?

以上、アドバイスいただけたら幸いです。
よろしくお願いいたします。


引用未解決
トピックタグ
aetos
(@aetos)
Noble Member
結合: 6年前
投稿: 1480
 

> 今、ダイアログバーにスライダーを配置し、OnHScrollで動作を得ようと
> したのですが、反応がありませんでした。(デバックでもとんできません。)

OnHScroll をどのクラスで捕まえようとしましたか?
フレームやビューで捕まえようとしても無理な気がします。
ダイアログバーで捕まえないと。

で、ダイアログバーの元になっているダイアログのクラスを作り、
OnHScroll を捕まえるようにしてみましたが…失敗。
考えてみたら、この作ったクラスのインスタンスが作られてない。
そこで、CDialog から派生していたのを CDialogBar から派生するように書き換え、
フレームのメンバにあるダイアログバークラスを、CDialogBar からこのクラスに変更し
たところ、捕まえられるようになりました。
OnInitDialog が呼ばれていないせいか、DDX が利きませんけど。

> CDC *pDC = GetDC();
> とした場合、pDCには、何のDCが入っているのでしょうか?

それを呼び出した場所によって変わります。
上記コードは

CDC *pDC = this->GetDC();

の略です。
this がフレームであればフレームの DC だろうし、ダイアログであればダイアログの
DC だろうし。


返信引用
onajihoko
 onajihoko
(@onajihoko)
ゲスト
結合: 21年前
投稿: 5
Topic starter  

ダイアログバーのスライダーに関しては、Notify関数で解決いたしました。
アドバイスどうもでした。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました