HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2006
0930
HDリストビューでカラムの列番号を取得2解決


HD

リンク

2006/9/30(Sat) 22:48:21|NO.2749

リストビューに名前や住所などのカラムを作成して任意の名簿データを入れて
カラムをクリックされた場合にそれらをソートしたいのですが、
カラムのどの列が押されたのかを、どのようにして取得すれば良いのでしょうか。
他の言語(C++など)ではNMLISTVIEW構造体が使われていることが分かったのですが、
HSPではどのようにして取得するのか分かりませんでした。



この記事に返信する


t.hamaguti

リンク

2006/9/30(Sat) 23:04:43|NO.2751

コラムがクリックされるとWM_NOTIFYメッセージの形で通知が来るので、
そこから情報を得ます。具体的には以下のような感じです。(^_^;

#const WS_CHILD $40000000 #const WS_VISIBLE $10000000 #const LVS_REPORT $00000001 #const LVCF_TEXT $00000004 #const LVCF_WIDTH $00000002 #const LVM_INSERTCOLUMN $0000101B #const WM_NOTIFY $0000004E #const LVN_COLUMNCLICK $FFFFFF94 // リストビューを作成 winobj "SysListView32", "",, WS_CHILD | WS_VISIBLE | LVS_REPORT, ginfo(12), ginfo(13) wList = objinfo(stat, 2) // コラムを追加 dim lvc, 6 // LVCOLUMN structure lvc = LVCF_TEXT | LVCF_WIDTH lvc(2) = 100 repeat 6 s = "column"+ cnt lvc(3) = varptr(s), strlen(s) sendmsg wList, LVM_INSERTCOLUMN, cnt, varptr(lvc) loop oncmd gosub *on_notify, WM_NOTIFY stop *on_notify dupptr nmhdr, lparam, 12, 4 // NMHDR structure // 通知コードがコラムのクリックなら... if (nmhdr = wList) & (nmhdr(2) = LVN_COLUMNCLICK) { dupptr nmlv, lparam, 40, 4 // NMLISTVIEW structure // クリックされたコラムのインデックスを見る title "Column index = "+ nmlv(4) } return



HD

リンク

2006/10/1(Sun) 02:22:31|NO.2757

ありがとうございます、出来ました。
同じlparamで2つの構造体が得られるとは意外でした。



ONION software Copyright 1997-2023(c) All rights reserved.