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


HSPTV!掲示板


未解決 解決 停止 削除要請

2011
0628
YTKリストボックスで複数列を表示させる方法4解決


YTK

リンク

2011/6/28(Tue) 14:07:27|NO.39858

リストボックスに
氏名
佐藤
鈴木
斉藤
田中
と、一つの列を表示させるのではなく、
ACCESSなどのリストボックスのように
氏名   年齢   住所
佐藤   20    東京
鈴木   30    大阪
斉藤 22    名古屋
田中 32    沖縄
と、複数の列を一つのリストボックス内に表示することは可能でしょうか?



この記事に返信する


ひらまる

リンク

2011/6/28(Tue) 14:35:57|NO.39859

それはたしかリストボックスじゃなくて、
なんとかボックスっていう別のオブジェクトだった気もするし…
リストボックスのスタイルだった気もする…
LBS_MULTICOLUMN これでしょうか…?
でも使い方がよくわからな……あ。
そうそう、複数列のリストボックスっぽい奴(エクセルとかで見る奴)は、
リストビューとかそんな名前でしたw

そこまでわかれば
CreateWindowExでWC_LISTVIEWを作成でしょうか。
あとは検索やらなんやらでなんとかしてみてください;(だって詳しくないんだもん)



info

リンク

2011/6/28(Tue) 16:27:22|NO.39860

私用のモジュールを短くしたものです。
実用には色々と足りないと思いますが、参考にしてください。


initmodule@hListViewModule #module hListViewModule #const LVM_INSERTCOLUMN $0000101B #const LVM_INSERTITEM $00001007 #const LVM_SETITEM $00001006 #enum global lvc_mask = 0 #const global LVCF_FMT $00000001 // fmt #const global LVCF_WIDTH $00000002 // cx #const global LVCF_TEXT $00000004 // pszText #const global LVCF_SUBITEM $00000008 // iSubItem #const global LVCF_IMAGE $00000010 // Version 4.70 以降: iImage #const global LVCF_ORDER $00000020 // Version 4.70 以降: iOrder #enum global lvc_fmt #const global LVCFMT_LEFT $00000000 // テキストが左に配置されます。 #const global LVCFMT_RIGHT $00000001 // テキストが右に配置されます。 #const global LVCFMT_CENTER $00000002 // テキストが中央に配置されます。 #const global LVCFMT_JUSTIFYMASK $00000003 // ? #const global LVCFMT_IMAGE $00000800 // Version 4.70 以降: アイテムはイメージリストのイメージを表示します。 #const global LVCFMT_BITMAP_ON_RIGHT $00001000 // Version 4.70 以降: ビットマップをアイテムの右側に表示します。 ; これは、ヘッダアイテムに割り当てられたイメージリストのイメージには影響しません。 #const global LVCFMT_COL_HAS_IMAGES $00008000 // Version 4.70 以降: ヘッダアイテムはイメージリスト中のイメージを含みます #enum global lvc_cx #enum global lvc_pszText #enum global lvc_cchTextMax #enum global lvc_iSubItem #enum global lvc_iImage #enum global lvc_iOrder #enum global LVCOLUMN_ELETOTAL #enum global lvi_mask = 0 #const global LVIF_TEXT $00000001 // pszText #const global LVIF_IMAGE $00000002 // iImage #const global LVIF_PARAM $00000004 // lParam #const global LVIF_STATE $00000008 // state #const global LVIF_INDENT $00000010 // Version 4.70 以降: iIndent #const global LVIF_GROUPID $00000100 // Version 6.0 以降: iGroupID #const global LVIF_COLUMNS $00000200 // Version 6.0 以降: cColumns #const global LVIF_NORECOMPUTE $00000800 // Version 4.70 以降: コントロールは LVM_GETITEM メッセージを受け取ったときに、 ; テキスト情報を取得するのに LVN_GETDISPINFO 通知メッセージを発生させません。 ; 代わりに、 pszText メンバに -1 (LPSTR_TEXTCALLBACK) を格納します。 #const global LVIF_DI_SETITEM $00001000 // システムは、要求されたリストアイテムの情報を格納しておき、後で再び情報を求めません ; このフラグは LVN_GETDISPINFO 通知メッセージでのみ使用されます。 #enum global lvi_iItem #enum global lvi_iSubItem #enum global lvi_state #const global LVIS_FOCUSED $00000001 // アイテムがフォーカスを持ちます。 ; フォーカスを持ったアイテムは周囲が点線で囲まれます。 ; フォーカスを持つことができるアイテムは1つだけです。 #const global LVIS_SELECTED $00000002 // アイテムが選択されています。 ; 表示のされ方はシステムカラーに依存します。複数のアイテムが同時に選択されることができます。 #const global LVIS_CUT $00000004 // アイテムはカット・アンド・ペーストの対象としてマークされています。 #const global LVIS_DROPHILITED $00000008 // ドラッグ・アンド・ドロップのターゲットとしてハイライト表示されています。 #const global LVIS_ACTIVATING $00000020 // 現在はサポートされていません。 #const global LVIS_OVERLAYMASK $00000F00 // ? #const global LVIS_STATEIMAGEMASK $0000F000 // ? #enum global lvi_stateMask #enum global lvi_pszText #enum global lvi_cchTextMax #enum global lvi_iImage #enum global lvi_lParam #enum global lvi_iIndent #enum global lvi_iGroupId #enum global lvi_cColumns #enum global lvi_puColumns #enum global LVITEM_ELETOTAL #deffunc local initmodule #include "comctl32.as" dim LVITEM_InsertItem,LVITEM_ELETOTAL dim LVITEM_SetItem,LVITEM_ELETOTAL LVITEM_SetItem.lvi_mask = LVIF_TEXT dim LVCOLUMN_InsertColumn,LVITEM_ELETOTAL #const ICC_LISTVIEW_CLASSES $00000001 icx = 8 , ICC_LISTVIEW_CLASSES InitCommonControlsEx varptr(icx) return #deffunc CreateListview int exstyle_,int style_ ,int x_ , int y_ winobj "SysListView32","",0x200|exstyle_,0x50000001|style_,x_,y_,0,0 return #deffunc local lv_InsertColumn int lic_hlist_ , int lic_iindex_ , str lic_string_ , \ int lic_cx_ , int lic_lindex_ , int lic_fmt_ , \ int lic_mask_ , int lic_iOrder string = lic_string_ LVCOLUMN_InsertColumn.lvc_mask = lic_mask_ LVCOLUMN_InsertColumn.lvc_fmt = lic_fmt_ LVCOLUMN_InsertColumn.lvc_cx = lic_cx_ LVCOLUMN_InsertColumn.lvc_pszText = varptr(string) LVCOLUMN_InsertColumn.lvc_cchTextMax = strlen(string) LVCOLUMN_InsertColumn.lvc_iSubItem = lic_iindex_ LVCOLUMN_InsertColumn.lvc_iImage = lic_lindex_ LVCOLUMN_InsertColumn.lvc_iOrder = lic_iOrder sendmsg lic_hlist_ , LVM_INSERTCOLUMN , lic_iindex_ , varptr(LVCOLUMN_InsertColumn) return #define global lv_InsertColumn(%1=hList,%2=0,%3="",%4=100,%5=0,%6=0,%7=0x0000000F,%8=0)\ lv_InsertColumn@hListViewModule %1,%2,%3,%4,%5,%6,%7,%8 #deffunc local Lv_InsertItem int lii_hList_ , int lii_iIndex_ , str lii_string_ , \ int lii_lparam_ , int lii_mask_ , int lii_lIndex_ , \ int lii_iIndent_ string = lii_string_ LVITEM_InsertItem.lvi_mask = lii_mask_ LVITEM_InsertItem.lvi_iItem = lii_iIndex_ LVITEM_InsertItem.lvi_iSubItem = lii_isubindex_ LVITEM_InsertItem.lvi_pszText = varptr(string) LVITEM_InsertItem.lvi_cchTextMax = strlen(string) LVITEM_InsertItem.lvi_iImage = lii_lIndex_ LVITEM_InsertItem.lvi_lParam = lii_lparam_ LVITEM_InsertItem.lvi_iIndent = lii_iIndent_ sendmsg lii_hList_ , LVM_INSERTITEM ,,varptr(LVITEM_InsertItem) return #define global Lv_InsertItem(%1,%2=0,%3="",%4=0,%5=0x00000005,%6=0,%7=0)\ Lv_InsertItem@hListViewModule %1,%2,%3,%4,%5,%6,%7 #deffunc lv_SetItem int lss_hlist_ , int lss_iIndex_ , int lss_siIndex_ , str lss_String_ string = lss_String_ LVITEM_SetItem.lvi_iItem = lss_iIndex_ LVITEM_SetItem.lvi_iSubItem = lss_siIndex_ LVITEM_SetItem.lvi_pszText = varptr(string) LVITEM_SetItem.lvi_cchTextMax = strlen(string) sendmsg lss_hlist_ , LVM_SETITEM , 0 , varptr(LVITEM_SetItem) return stat #global Createlistview ,,ginfo_winx,ginfo_winy hwnd_listview = objinfo_hwnd(stat) lv_InsertColumn hwnd_listview ,0, "指名" lv_InsertColumn hwnd_listview ,1, "年令" lv_InsertColumn hwnd_listview ,2, "住職" Lv_InsertItem hwnd_listview , 0 , "A子" lv_SetItem hwnd_listview , 0 , 1 , "21" lv_SetItem hwnd_listview , 0 , 2 , "○県▽市☆町□丁目" Lv_InsertItem hwnd_listview , 1 , "B男" lv_SetItem hwnd_listview , 1 , 1 , "23" lv_SetItem hwnd_listview , 1 , 2 , "○県▽市☆町□丁目" Lv_InsertItem hwnd_listview , 2 , "C太郎" lv_SetItem hwnd_listview , 2 , 1 , "27" lv_SetItem hwnd_listview , 2 , 2 , "○県▽市☆町□丁目"



skyblue

リンク

2011/6/28(Tue) 18:23:53|NO.39862

llmod3を使って簡単にリストボックスを作ろう!

氏名   年齢   住所   ←リストボックスの欄
佐藤   20    東京   ←リストボックスのアイテム
鈴木   30    大阪   ←リストボックスのアイテム
斉藤   22    名古屋  ←リストボックスのアイテム
田中   32    沖縄   ←リストボックスのアイテム



YTK

リンク

2011/6/28(Tue) 20:43:00|NO.39863

返答ありがとうございました。
自分が作りたいのは「リストビュー」だったのですね。
winobj命令か、llmod3を使って「リストビュー」を作るといったところでしょうか。
いずれにせよ、とっかかりをつかめました。
調べた上でどちらが良いか判断したいと思います。
infoさん、コードありがとうございました。分析した上で参考にさせていただきたいと思います。

また何かありましたらよろしくお願いします。



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