【MFC】リストビューをグレーアウトして無効表示させる
WindowsAPIのボタンを無効化すると灰色にグレーアウトしますが、リストビューを無効化してもグレーアウトしません。
この記事ではグレーアウトさせる一つの方法を紹介します↓
処理の流れですが、CreateCompatibleDC・CreateCompatibleBitmapでリストビューと互換性のある描画オブジェクトを作成し、リストビューをキャプチャします。それをAlphaBlendで灰色に透過させ、WM_PAINT時にBitBltで表画面に転送しています。
つまり、無効状態時は実際のリストビューではなく「グレーアウトしたリストビューの画像」が表示されているという事です。
この状態ではリストに対するスクロール等の操作もできないため、リストの要素だけをグレーアウトさせたい場合はリストビューのオーナードローを検討してください。
↓ソースはGitHubにアップしています。