水平/垂直スクロールバーの表示/非表示をチェックするには?


L  2008-04-29 05:04:36  No: 68217

環境
Visual Studio 2005
C++

ダイアログ上に自作したスクロールバーがあるのですが、
水平/垂直スクロールバーの表示/非表示をチェックするにはどうしたら良いでしょうか?
非表示の時も、GetScrollInfoで値がとれてしまいます。。


そだ  2008-04-29 05:33:23  No: 68218

Win32APIの話でいいのかな

GetWindowLongでウィンドウスタイル取得して
WS_VISIBLEのフラグが立っているか調べてみたら
どだろう。


シャノン  2008-04-30 09:33:08  No: 68219

「自作したスクロールバー」ということなので、スクロールバーコントロールを張り付けているんでしょうか?
表示する・しないを自分でコントロールできるなら、その状態を変数か何かに持っておくのがいいと思いますが。


ん?  2008-05-01 08:27:27  No: 68220

>WS_VISIBLEのフラグが立っているか
それは可視状態であるか否かであり、WS_VSCROLL/WS_HSCROLLが
指定されているか否かを調べるのでは?
#ただ、これらが指定されているスタイルであっても、
#実際にスクロールバーが有効(スクロール状態)であるかはしらん。


そだ  2008-05-01 22:13:05  No: 68221

>それは可視状態であるか否かであり、WS_VSCROLL/WS_HSCROLLが
>指定されているか否かを調べるのでは?
オーバーラップドウィンドウならそれでいいんだけどねぇ・・・


ん?  2008-05-02 02:15:49  No: 68222

>オーバーラップドウィンドウならそれでいいんだけどねぇ・・・
そうで無いウインドウ時には無理なのですか…知りませんでした。
#ひとつ賢くなりました


そだ  2008-05-02 03:33:57  No: 68223

>そうで無いウインドウ時には無理なのですか…知りませんでした。
>#ひとつ賢くなりました
無理というかダイアログの話だったので
ウィンドウの右端と下端に備わるようなスクロールバーではなく
リソースエディタでダイアログに追加するような
スクロールバーコントロールだと思っただけです。

そりゃダイアログにもWS_VSCROLLスタイルをつけようと思えばつきますよ。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加