CListCtrlの選択範囲のスタイル / CListCtrlのちらつきを抑える
投稿日: 2005年05月23日 更新日: 2017年07月22日
CListCtrlの選択範囲のスタイル
選択範囲のスタイルはマニフェストファイル(.manifest)によって設定できるらしい。
実行したアプリケーション
http://www.codeproject.com/cs/miscctrl/listviewxp.asp
XP Visual Styleの適用方法
http://www31.ocn.ne.jp/~yoshio2/vcmemo8-1.html
追記:あれ?なんか.manifest作っただけじゃだめぽ。.NET使えばいいのか、拡張スタイルの設定が必要なのか、はたまた最新のSDKが必要なのか・・・。
追記:SetExtendedStyle(LVS_EX_DOUBLEBUFFER)でできるようになった。
CListCtrlのちらつきを抑える
CListCtrlの選択範囲のスタイルが気になったのは、元々次の理由からだった。
- リストコントロールにファイル/フォルダ一覧を表示させたところ、選択範囲が画面外にはみ出したときに発生するスクロールで項目がちらつく。(オーナーデータを使っているせいか?)
- おそらくリストコントロールを使っているであろうエクスプローラの画面ではちらつかない上に選択範囲がなんかかっこいい。
で、LVS_EX_DOUBLEBUFFERを使ったところ、ちらつき問題と選択範囲のスタイルが両方とも解決した。
ちなみにhttp://www.codeproject.com/cs/miscctrl/listviewxp.aspによると
In Windows XP, there is an extended-style called LVS_EX_DOUBLEBUFFER. This is what we want. Unfortunately it is only available for Common Controls version 6, which means we need Windows XP as well as a manifest file (or embedded resource). Additionally there is a style called LVS_EX_BORDERSELECT which tells the ListView (in Large Icon mode) to highlight the border of the icon rather than to paint over it (This is available with Common Controls version 4.71, so this will work without XP).
らしいので、残念ながらWindows XP以降でしか使えない上にmanifestファイルは結局必要となる。
LVS_EX_BORDERSELECTはXPでなくても動くようだけど、今は特に必要ないかも。

名前:宮内 はじめ
Code for Nagoya名誉代表
E2D3名古屋支部長
プログラマーです。GISやデータビズが好きです。このサイトは宮内の個人的なメモです。
人気記事ランキング
- IP Messengerで通信できない件
- Softerra LDAP Browser - Windows用のフリーなLDAPブラウザ
- パスからファイル名を取得する / INIファイルの保存ディレクトリを取得する
- rhs, lhs / 変数名を考えるときに役に立ちそうなページ
- ファイル選択ダイアログで落ちる / ファイル選択ダイアログで落ちる(2) / ファイル選択ダイアログで落ちる(3) / ファイル選択ダイアログで落ちる(4) / 日本語の作文技術
- realloc()の正しい使い方
- PHPで生成されたページにContent-Lengthを出力する / 住所検索 / RSS1.0のMIMEタイプ / PHPであることを示すヘッダを削除
- rsyncで圧縮転送すると遅くなる
- 巨大ファイルを扱えるバイナリエディタ / Stirlingの構造体エディット機能 / CListCtrlの仮想リスト
- MacでSJISネイティブ対応のエディタを探してみた