おぉ、なんか親近感が沸きました!
最近リストビューの使い方を勉強中の淡幻星です(^_^)
よろしゅ~(笑)。
<ご質問事項>
通常のウィンドウ生成(クラスデータ設定→クラスの登録→生成)に対して何
か特別な設定がありますか。生成させるための事前設定は?
とくにありません(そのはず)。
#include <api_commctrl.sbp>は一応記述
ABで定義されていないリストビューのクラス名(lpClassName=)は?
試行錯誤の上”LISTVIEW”と記述
詳細なコードはお手数を掛けますので,ポイントのみで結構です。
ヘルプには載っていませんが、リストビューのクラス名は
lpClassName = "SysListView32"
で定義されていますので、親窓hWndに対しての作成はこんな感じです。
コード: 全て選択
InitCommonControls()
hListView = CreateWindowEx( NULL, "SysListView32", NULL, _
WS_CHILD or WS_VISIBLE or LVS_REPORT , _
0, 0, 360, 240, _
hWnd, ID_ListView, _
GetModuleHandle(0), NULL )
参考までに、
作成したリストビューに対して一行選択やグリッド表示、
チェックボックス付加を設定する場合は、
下記のようにすると出来ます。
コード: 全て選択
Dim hAny As Long
Dim ic As INITCOMMONCONTROLSEX
'リストビューの拡張設定
'※チェックボックス付・1行選択・グリッド表示を許可
hAny = GetDlgItem( hWnd, ID_ListView )
ic.dwSize = Len( ic )
ic.dwICC = ICC_LISTVIEW_CLASSES
InitCommonControlsEx(ic)
SendMessage( hAny, _
LVM_SETEXTENDEDLISTVIEWSTYLE, _
LVS_EX_CHECKBOXES or LVS_EX_FULLROWSELECT or LVS_EX_GRIDLINES, _
LVS_EX_CHECKBOXES Or LVS_EX_FULLROWSELECT or LVS_EX_GRIDLINES )
エラーしましたら、すいません。
自分のコード(AB3)からリストビューの部分だけを貼り付けたので、何らかの不整合があるかもしれません。
ちなみに、
BackSearchABで「チェックボックスについて」で
検索するとヒットするログ(1件)に、
AB2版でのリストビューの作成方法+その拡張スタイルの扱い方が載っています。
AB2→最新版(AB4)へ移植をされている方向けだと思います。
そちらログでは使うAPIや構造体をいろいろ定義していますが、
最新版ではapi_commctrl.sbpをインクルードするだけで十分です(そのはず)。
(もちろん「リストビュー」で検索すれば、たくさん引っかかります)
蛇足ですが、ABのRADでは拡張スタイルにWS_EX_CLIENTEDGE(縁が沈んで見える境界線を持つウィンドウを作成)をデフォルト指定していますね。
さらに蛇足ですが、質問内容がすごく分かりやすくて、答えるのが楽でした(^_^)。