環境
Visual Studio 2005
C++
ダイアログ上に自作したスクロールバーがあるのですが、
水平/垂直スクロールバーの表示/非表示をチェックするにはどうしたら良いでしょうか?
非表示の時も、GetScrollInfoで値がとれてしまいます。。
Win32APIの話でいいのかな
GetWindowLongでウィンドウスタイル取得して
WS_VISIBLEのフラグが立っているか調べてみたら
どだろう。
「自作したスクロールバー」ということなので、スクロールバーコントロールを張り付けているんでしょうか?
表示する・しないを自分でコントロールできるなら、その状態を変数か何かに持っておくのがいいと思いますが。
>WS_VISIBLEのフラグが立っているか
それは可視状態であるか否かであり、WS_VSCROLL/WS_HSCROLLが
指定されているか否かを調べるのでは?
#ただ、これらが指定されているスタイルであっても、
#実際にスクロールバーが有効(スクロール状態)であるかはしらん。
>それは可視状態であるか否かであり、WS_VSCROLL/WS_HSCROLLが
>指定されているか否かを調べるのでは?
オーバーラップドウィンドウならそれでいいんだけどねぇ・・・
>オーバーラップドウィンドウならそれでいいんだけどねぇ・・・
そうで無いウインドウ時には無理なのですか…知りませんでした。
#ひとつ賢くなりました
>そうで無いウインドウ時には無理なのですか…知りませんでした。
>#ひとつ賢くなりました
無理というかダイアログの話だったので
ウィンドウの右端と下端に備わるようなスクロールバーではなく
リソースエディタでダイアログに追加するような
スクロールバーコントロールだと思っただけです。
そりゃダイアログにもWS_VSCROLLスタイルをつけようと思えばつきますよ。
ツイート | ![]() |