カスタムコントロールにスクロールバーを付加したい – プログラミング – Home

カスタムコントロールにスクロールバーを...
 
通知
すべてクリア

[解決済] カスタムコントロールにスクロールバーを付加したい


若葉マーク
 若葉マーク
(@若葉マーク)
ゲスト
結合: 17年前
投稿: 6
Topic starter  

今日は、宜しくお願いします。

環境:Windows XP SP2 / MFC
シングルダイアログベースの実装で、レイアウトは、このようになっています

※ ダイアログのレイアウト
OKボタン
キャンセルボタン
カスタムコントロール
水平スクロールバーコントロール

※ 動作概要
http://support.microsoft.com/kb/183528/ja
http://support.microsoft.com/kb/403860/ja
を参考に、カスタムコントロールに画像を表示し(画像描画処理は実装済み)
スクロールバーを動かすことで、画面に表示しきれない部分をスクロールさせたい。

※ 手順
カスタムコントロールのプロパティーから
public:
afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar*
pScrollBar);
を自動的に追加し、行いたい処理の実装を加える。

※ 問題点
スクロールバーをマウスで移動しても、変化が起こりません。
OnHScroll()に、ブレークを貼って、挙動を見ると、イベントが通知されていないようで
す。

※ お聞きしたいこと
スクロールバーと、カスタムコントロールの動作をリンケージさせる場合の、手順は
これで間違っていないでしょうか?


引用未解決
トピックタグ
maru
 maru
(@maru)
ゲスト
結合: 17年前
投稿: 358
 

スクロールイベントを受け取るのはスクロールバーコントロールなので、OnHScroll()を
カスタムコントロールではなく、スクロールバーコントロールに追加してください。

と思ったら、紹介されている
http://support.microsoft.com/kb/183528/ja
http://support.microsoft.com/kb/403860/ja
には、親ウインドウのクラスにハンドラを追加しろ、って書いてあった。
従ってOnHScroll()を追加するのはカスタムコントロールではなく、ダイアログクラスに
なります。


返信引用
若葉マーク
 若葉マーク
(@若葉マーク)
ゲスト
結合: 17年前
投稿: 6
Topic starter  

maruさん、ありがとうございます。
>>カスタムコントロールではなく、スクロールバーコントロールに追加してください。
MSDNの内容はそういうことだったんですね(^^;
カスタムコントロールもCWndクラスを継承しており故に、OnHScrollメッソッドがあるの

てっきりそこに、実装したら良いのかと、勘違いしてました。
解決できました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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