VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 2003/10/07(Tue) 22:37
投稿者TOM
Eメール
URL
タイトルRe^4: VB6のListViewにAPIのImageList連結

WEB検索で見つけた以下のサンプルで、ほぼ解決できました。
http://www.mvps.org/btmtz/listview/
SystemImagelist: How to associate the system imagelist with the VB ListView.
Download systemimagelist.zip (11kb)

システムイメージリストやAPIで作成したイメージリストをVBのリストビュー
に連結するには、LVM_SETIMAGELISTメッセージを使用する様です。
この場合、VBのListViewが上記イメージリストの連結を解除してしまうので、
サブクラス化により、LVM_SETIMAGELISTメッセージを握り潰す必要がある様です。
次に、アイテムのイメージ設定は、LVM_SETITEMメッセージを使用する様です。

問題点として、VB6 ListView (MSCOMCTL.OCX) を使用した場合、
EXEで実行すると、選択項目のアイコンが消えてしまいます。
VB5 ListView (COMCTL32.OCX) を使用した場合、この現象は発生しません。
VB6 ListView での回避策が見つからないのが少し残念ですが...
この回避策をご存知でしたら教えて下さい。

蛇足ですが、サブクラス化しない方法を検討してみました。
(1) 初期表示のListView.Viewプロパティの設定
  小アイコンの場合、通常通り lvwReport 等を設定。
  大アイコンの場合、次の様に小アイコン, 大アイコンの順に続けて設定。
  ListView1.View = lvwReport
  ListView1.View = lvwIcon
(2) Viewの変更
  初期表示後のView変更に、Viewプロパティが使えないので、ウィンドウスタイル
    (LVS_ICON, LVS_REPORT, LVS_SMALLICON, LVS_LIST)を変更する。
あとは、サブクラス化する場合と同じです。

以上、遅くなりましたが報告まで。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -