通知
すべてクリア
Topic starter
2008年5月12日 9:54 PM
Windows Vista Ultimate(32bit)で、Visual Studio 2008 Standardを使用しています。
Visual C++でWin32 APIを使ってツールを作っています。
CreateWindowで
WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_OVERLAPPEDWINDOW | WS_HSCROLL | WS_VSCROLL
スタイルにてウィンドウを作成し、特定のキーで「WS_HSCROLL | WS_VSCROLL」をスタイ
ルから取り除くことでスクロールバーを消去したり、逆に設定することでスクロールバー
を表示したりしています。
Vistaではスクロールバーにマウスカーソルが重なると色が変わり、カーソルがスクロー
ルバーから離れるとフェードアウトします。
この効果のせいで、フェードアウト中に「WS_HSCROLL | WS_VSCROLL」を取り除くと、ゴ
ミとしてスクロールバーが残ってしまいます。
クライアント領域を再描画すれば、そのゴミは消えます。
このゴミが残らないようにフェードアウト描画を中止する方法や、Firefoxのように
フェードアウトせずにカーソルが離れたらすぐに元に戻るような設定を行う方法を教えて
ください。
よろしくお願いいたします。
Topic starter
2008年6月3日 8:33 PM
いろいろ調べたましたが、方法が見つかりませんでした。
今回は、タイマーを使用して、ゴミを上書きするようにしました。
一時しのぎですが、解決としておきます。