No.4ベストアンサー
- 回答日時:
> フォーカスがスクロールバーに行かないのですから当然
> スクロールバーの処理関数のところまでメッセージが届きません。
スクロールバーはフォーカスを受け取らないのが普通です。
フォーカス受け取るようにすることも出来ますが、
フォーカスがあたっていなくても、メッセージは送られてきます。
垂直スクロールバーなら WM_VSCROLL が、
水平スクロールバーなら WM_HSCROLL が、
スクロールバーの親ウィンドウに送られます。
そのあたりに間違いはないでしょうか?
ところで、メッセージが来ないというのはどのように確認されましたか?
この回答への補足
ありがとうございます。
てっききりスクロールバーにフォーカスがいきスクロールメッセージの処理をスクロールバーのウィンドウ処理関数にやらさないといけないと勘違いしていました。
(わざわざスクロールバーの処理関数を定義してしまった。)
「スクロールバーの親ウィンドウに送られます。」
だから
親ウィンドウにやらせばいいのですね。
そのようにしたらうまくいきました。
しかしSBS_HORZ(クリエイト関数に)とかSB_HORZ(位置の読みとり書き込み関数に)を使うと2つのスクロールバーが上下に並んででてしまいます。
上のバーのボタンでしたのつまみが動くような変な動作をします。
SB_CTLでは問題ないのですが・・・
何か心当たりが有れば教えてください。
No.5
- 回答日時:
#2です。
ちょっと自信ないですが、スクロールバーのレンジや位置を設定する際に
SetScrollPos系の関数かSetScrollInfoを使っていると思いますが
これらの第2引数にSB_CTLを指定していますか?
スクロールバーのフラグはSB_CTLかSB_VERTかSB_HORZのどれかになりますが、
SB_CTRはスクロールバーを自分で作った場合に使います。
CreateWindow関数の親ウインドウのウィンドウスタイルに
WS_VSCROLL, WS_HSCROLLを指定してを作った場合は
それぞれSB_VERT, SB_HORZを選びます。
SB_CTRはスクロールバーを自分で作った場合に使います。
まさに自分で作ったものです。
だからSB_CTRで動くのですね。
SetScrollPosにはSB_CTLや指摘のものをいろいろ試しました。
ちなみに親ウィンドウはWS_OVERLAPPEDWINDOWです。
とりあえず今は問題の起きていない方法でやってみます。
上下に連なってでてくる理由を知りたいけれどもマイクロソフトのバグかもしれないので知る必要がでるまでは触らぬ神にたたりなしのやり方でいきたいと思います。
ありがとうございます。
No.3
- 回答日時:
補足ですが、スクロールバーのスタイルは、
SB_CTLではなくSBS_VERTかSBS_HORZで水平か垂直かを指定します。
この回答への補足
ありがとうございます。
実は水平スクロールバーのウィンドウ処理関数を書いてしまったので少しがんばって動けば今回はこれで通そうと思っているのですがスクロールバーをクリックしてもスクロールバーにフォーカスが移動しません。
フォーカスがスクロールバーに行かないのですから当然スクロールバーの処理関数のところまでメッセージが届きません。
どうしたらいいのでしょうか?
hS=CreateWindow
("SCROLLBAR","",WS_CHILD|WS_VISIBLE|SBS_HORZ,0,0,600,20,hW,(HMENU)99,hI,NULL);
としてみたところ水平スクロールバーが2つ上下に隣接してできました。
hS=CreateWindow
("SCROLLBAR","",WS_CHILD|WS_VISIBLE|SB_CTL,0,0,600,20,hW,(HMENU)99,hI,NULL);
とすれば1つしかでないので問題ないのですが・・・
なにか設定に間違いがあるのでしょうか?
No.2
- 回答日時:
スライダーは別名トラックバーとも呼ばれていて
トラックバーで検索すると参考ページが見つかりますよ。
一応参考URLを載せておきますね。
このページでは範囲選択のあるスライダーを使ってますが
スタイルを変更することによって、範囲選択をなくすことも出来ます。
スクロールバーは、WM_VSCROLLかWM_HSCROLLの
どちらかで処理するのは#1さんと同じですが、
その時にSetScrollInfo関数の方を使うとレンジに比例して
つまみ部分が大きくなったり、自動で無効化されたりします。
参考URL:http://www.kumei.ne.jp/c_lang/sdk2/sdk_190.htm
No.1
- 回答日時:
> hSBのウィンドウ処理関数を記述することなくつまみを
> ドラッグ移動した後に離したときその位置につまみが
> とどまるようにすることはできるのでしょうか?
出来ないと思います。
WM_VSCROLL か WM_HSCROLL を処理して SetScrollPos
でつまみの位置を設定してやる必要があります。
用途によっては、スライダーコントロールを使ってもいいかもしれませんね。
こちらの場合、メッセージを処理しなくてもつまみがとどまります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SPREAD(GrapeCity)のセルにフォ...
-
コンボボックスの開いたリスト...
-
Excelのマクロで実行時エラー”1...
-
C#でButtonのフォーカス枠を消...
-
メッセージボックスを前面に表...
-
Chrome フォーカス時に枠が表示...
-
フォームを継承した際の、コン...
-
[化学基礎] μmのμはどうして...
-
フォトショのアクションを別のM...
-
雷のようなアニメーションをウ...
-
コンボボックスの三角を一時的...
-
エディットボックスのカーソル...
-
DataGridViewで入力チェック後...
-
iPhoneのクイックアクションを...
-
レーザのスポット径の計算式
-
画面にヒビが入るエフェクトに...
-
入力項目にカーソルの位置づけ...
-
デュアルディスプレイ(マルチ...
-
ローディングアニメーションの...
-
スラッシュを固定表示したまま...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
メッセージボックスを前面に表...
-
SPREAD(GrapeCity)のセルにフォ...
-
Chrome フォーカス時に枠が表示...
-
Excelのマクロで実行時エラー”1...
-
C#でButtonのフォーカス枠を消...
-
コンボボックスの開いたリスト...
-
TDSマジックランプシアター 箱...
-
レーザのスポット径の計算式
-
コンボボックスの三角を一時的...
-
iPhoneのクイックアクションを...
-
DataGridViewで入力チェック後...
-
除光液の正しい捨て方がわかり...
-
DAMのデンモクの使い方
-
初期フォーカスについて
-
JavaScript でpk戦のゲームを作...
-
雷のようなアニメーションをウ...
-
PowershellでCLIとISEの結果が違う
-
フォトショのアクションを別のM...
-
VC++でマウスホイールイベント...
-
ASP.NETにてロストフォーカス処理
おすすめ情報