GetTimetagLyrics/exlistview'.hsp
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
#set_tags(GetTimetagLyricsスクリプト)
#pre{{
; ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄...
; exlistview'.hsp (HSP-NEXT さくら様作) [ちょっと改造]
;
; リストビューモジュール
;____________________________...
;********************************************************...
; (exlistview.as) for HSP3.0 リストビューコントロール関...
;
; #include する必要なプラグインやマクロファイル
; #include "sysval.as"
; #include "gblconst.as"
; #include "winapi32.as"
;
; ※下記のlibraryは、winapi32.asにまとめてあります。
;
; #include "user32.as"
; #include "comctl32.as"
;
; ※モジュール番号の左側に'*'が付いているものは、ユーザー...
; それ以外のものは、モジュール命令となっています。
;
;--------------------------------------------------------...
;
;* 1. リストビューコントロールを作成 ...
; 2. リストビューコントロール拡張スタイルの設定 ...
; 3. リストビューコントロールにカラムを追加 ...
; 4. リストビューコントロールにアイテム追加 ...
; 5. リストビューコントロールにイメージ設定 ...
; 6. リストビューコントロールにサブアイテム追加 ...
; 7. リストビューコントロール表示スタイル変更 ...
; 8. リストビューコントロールの背景色を設定 ...
; 9. リストビューの項目のテキスト色・背景色を設定 ...
;*10. リストビューコントロールのチエック項目状態を取得 ...
; 11. リストビューコントロールのチエック項目を設定 ...
; 12. リストビューコントロールのカラムを消去 ...
;*13. リストビューコントロールのアイテムの数を取得 ...
;*14. リストビューコントロールの選択アイテム取得 ...
; 15. リストビューコントロールの項目を消去 ...
; 16. リストビューコントロールの項目の文字列を取得 ...
; 17. リストビューコントロールの項目の文字列を設定 ...
; 18. リストビューコントロールの項目を選択 ...
; 19. リストビューコントロールのカラムの順を設定 ...
; 20. リストビューコントロールのカラムの幅を取得 ...
; 21. リストビューコントロールのカラムの幅を設定 ...
;
; 最終更新...
;********************************************************...
#ifdef __hsp30__
#ifndef __EXLISTVIEW__
#define __EXLISTVIEW__
#module
#defcfunc Createlstview int prm1,int prm2,int prm3,int pr...
;********************************************************...
; リストビューコントロールを作成 (Createlstview)
;
; 戻り値 : 成功 lvshwnd=リストビューハンドル, 失敗 lvsh...
;
; ・書式 lvshwnd=Createlstview(nMode,nPosx,nPosy,nW...
; ・引数 nMode (int) : 0〜1(0) ソート...
; nPosx (int) : 0〜winx(pos x) 位置 x
; nPosy (int) : 0〜winy(pos y) 位置 y
; nWidth (int) : 0〜winx(objsize x) 幅
; nHeight (int) : 0〜winy(objsize y) 高さ
;
; nMode
; ---------------------------------------
; 0 : LVS_NOSORTHEADERを付加する
; 1 : LVS_NOSORTHEADERを付加しない
;
; ・タイプ ユーザー定義関数
;
;-- (NOTE) ----------------------------------------------...
;
; (使用例)
; lvshwnd=Createlstview(0,0,0,600,400)
;********************************************************...
mref bmscr,67
nMode = prm1 ;: if (nMode<=0)|(nMode>1) : nMode ...
nPosx = prm2 ;: if (nPosx<=0)|(nPosx>winx) : nPosx ...
nPosy = prm3 ;: if (nPosy<=0)|(nPosy>winy) : nPosy ...
nWidth = prm4 ;: if (nWidth<=0)|(nWidth>winx) : nWidth...
nHeight= prm5 ;: if (nHeight<=0)|(nHeight>winy) : nHeigh...
;CommonControl初期化
; #undef ICC_LISTVIEW_CLASSES
; #define ICC_LISTVIEW_CLASSES $00000001
; icx(0) = 8 : icx(1) = ICC_LISTVIEW_CLASSES
; InitCommonControlsEx varptr(icx)
;LVS_NOSORTHEADERを付加
if nMode==1 : nStyle=LVS_NOSORTHEADER : else : nStyle=0
dwStyle =WS_CHILD|WS_VISIBLE|LVS_REPORT|nStyle
class ="SysListView32" : pClass=varptr(class)
CreateWindowEx 0,pClass,0,dwStyle,nPosx,nPosy,nWidth,nHe...
lvshwnd=stat : if lvshwnd==0 : return -1
return lvshwnd
#deffunc lsvexset int prm1,int prm2
;********************************************************...
; リストビューコントロール拡張スタイルの設定 (lsvexset)
;
; 戻り値 : 成功 stat=0, 失敗 stat=-1
;
; ・書式 lsvexset lvshwnd,nStyle
; ・引数 lvshwnd (int) : Createlstviewで作成したハ...
; nStyle (int) : 0〜(0) 拡張スタイル (const...
; ・タイプ モジュール命令
;
;-- (NOTE) ----------------------------------------------...
;
; (使用例)
; lsvexset lvshwnd,$0005
;********************************************************...
lvshwnd = prm1 : if lvshwnd==0 : return -1
nStyle = prm2 : if nStyle<=0 : nStyle=0
; nStyle : 拡張スタイル (組合せて指定可)
; <<<nStyleに値を直接指定すること>>>
;---------------------------------------
; LVS_EX_GRIDLINES $0001
; LVS_EX_SUBITEMIMAGES $0002
; LVS_EX_CHECKBOXES $0004
; LVS_EX_TRACKSELECT $0008
; LVS_EX_HEADERDRAGDROP $0010
; LVS_EX_FULLROWSELECT $0020
; LVS_EX_ONECLICKACTIVATE $0040
; LVS_EX_TWOCLICKACTIVATE $0080
; LVS_EX_FLATSB $0100
; LVS_EX_REGIONAL $0200
; LVS_EX_INFOTIP $0400
; LVS_EX_UNDERLINEHOT $0800
; LVS_EX_UNDERLINECOLD $1000
; LVS_EX_MULTIWORKAREAS $2000
;拡張スタイルを取得 (ListView_GetExtendedListViewStyle)
SendMessage lvshwnd,LVM_GETEXTENDEDLISTVIEWSTYLE,0,0
dwExstyle=stat : dwExstyle+=nStyle
;拡張スタイルを設定 (ListView_SetExtendedListViewStyle)
SendMessage lvshwnd,LVM_SETEXTENDEDLISTVIEWSTYLE,0,dwExs...
return 0
#deffunc lsvcladd int prm1,str prm2,int prm3,int prm4,int...
;********************************************************...
; リストビューコントロールにカラムを追加 (lsvcladd)
;
; 戻り値 : 成功 stat=0, 失敗 stat=-1
;
; ・書式 lsvcladd lvshwnd,String,nIndex,Image,cwidt...
; ・引数 lvshwnd (int) : Createlstviewで作成したハ...
; String (str) : カラムヘッダー文字列 or 文...
; nIndex (int) : 0〜(0) 項目のインデック...
; Image (int) : 0〜(0) 追加するイメージ...
; cwidth (int) : 0〜(100) カラムの幅 (const...
; cfmt (int) : 0〜2(0) 配置フォーマット
; Imadd (int) : 0〜(0) イメージフラグ(通...
;
; cfmt
; ---------------------
; 0 : 左に配置
; 1 : 右に配置
; 2 : 中央に配置
;
; ・タイプ モジュール命令
;
;-- (NOTE) ----------------------------------------------...
;
; (使用例)
; lsvcladd lvshwnd,"サイト名",0,0,200,0,0
; lsvcladd lvshwnd,"作者",1,0,100,0,0
; lsvcladd lvshwnd,"アドレス",2,0,300,0,0
;********************************************************...
lvshwnd = prm1 : if lvshwnd==0 : return -1
ls=strlen(prm2) : if ls==0 : return -1 : else : sdim Str...
String = prm2
nIndex = prm3 : if nIndex<=0 : nIndex=0
Image = prm4 : if Image<=0 : Image=0
cwidth = prm5 : if cwidth<=0 : cwidth=100
cfmt = prm6 : if (cfmt<=0)|(cfmt>2) : cfmt=0
Imadd = prm7 : if Imadd<=0 : Imadd=0
; cwidth
; 数値で直接指定 : 0〜
; $FFFFFFFF : アイテムのサイズに応じて調整
; $FFFFFFFE : ヘッダの文字列サイズに合わせる
;LVCOLUMN構造体
dim tcl,7
; $000F = LVCF_FMT|LVCF_WIDTH|LVCF_TEXT|LVCF_SUBITEM
tcl(0) = $000F|Imadd ;mask
tcl(1) = cfmt|Imadd ;fmt
tcl(2) = cwidth ;cx
tcl(3) = varptr(String) ;pszText
tcl(4) = strlen(String) ;cchTextMax
tcl(5) = nIndex ;iSubItem
tcl(6) = Image ;iImage
SendMessage lvshwnd,LVM_INSERTCOLUMN,nIndex,varptr(tcl)
sdim String,0 : dim tcl,0
return 0
#deffunc lsvimadd int prm1,str prm2,int prm3,int prm4
;********************************************************...
; リストビューコントロールにアイテム追加 (lsvimadd)
;
; 戻り値 : 成功 stat=0, 失敗 stat=-1
;
; ・書式 lsvimadd lvshwnd,String,nIndex,Image
; ・引数 lvshwnd (int) : Createlstviewで作成したハ...
; String (str) : カラムヘッダー文字列 or 文...
; nIndex (int) : 0〜(0) 項目のインデックス...
; Image (int) : 0〜(0) 追加するイメージリ...
; ・タイプ モジュール命令
;
;-- (NOTE) ----------------------------------------------...
;
; (使用例)
; lsvimadd lvshwnd,"HSP-NEXT",0,0
; lsvimadd lvshwnd,"ONION software HOMEPAGE",1,0
; lsvimadd lvshwnd,"HSP CENTER",2,0
;********************************************************...
lvshwnd = prm1 : if lvshwnd==0 : return -1
ls=strlen(prm2) : if ls==0 : return -1 : else : sdim St...
String = prm2
nIndex = prm3 : if nIndex<=0 : nIndex=0
Image = prm4 : if Image<=0 : Image=0
;LVITEM構造体
dim tim,9
; $0003 = LVIF_TEXT|LVIF_IMAGE
tim(0) = $0003 ;mask
tim(1) = nIndex ;iItem
tim(2) = 0 ;iSubItem
tim(5) = varptr(String) ;pszText
tim(6) = strlen(String) ;cchTextMax
tim(7) = Image ;iImage
;tim(3) state
;tim(4) stateMask
;tim(8) lParam
SendMessage lvshwnd,LVM_INSERTITEM,0,varptr(tim)
sdim String,0 : dim tim,0
return 0
#deffunc lsvimgset int prm1,int prm2,int prm3
;********************************************************...
; リストビューコントロールにイメージ設定 (lsvimgset)
;
; 戻り値 : 成功 stat=0, 失敗 stat=-1
;
; ・書式 lsvimgset lvshwnd,Imghwnd,Imgmode
; ・引数 lvshwnd (int) : Createlstviewで作成したハ...
; Imghwnd (int) : Createimglistで作成したハ...
; Imgmode (int) : アイコンモード
;
; Imgmode
; --------------------------
; -1 : 非表示
; 0 : 大きいアイコン
; 1 : 小さいアイコン
;
; ・タイプ モジュール命令
;
;-- (NOTE) ----------------------------------------------...
;
; (使用例)
; lsvimgset lvshwnd,himgwnd1,0
; lsvimgset lvshwnd,himgwnd2,1
;********************************************************...
lvshwnd = prm1 : if lvshwnd==0 : return -1
Imghwnd = prm2 : if Imghwnd==0 : return -1
Imgmode = prm3 : if (Imgmode<-1)|(Imgmode>1) : return -1
;リストビューにイメージリストを設定
SendMessage lvshwnd,LVM_SETIMAGELIST,Imgmode,Imghwnd
return 0
#deffunc lsvsubadd int prm1,str prm2,int prm3,int prm4
;********************************************************...
; リストビューコントロールにサブアイテム追加 (lsvsubadd)
;
; 戻り値 : 成功 stat=0, 失敗 stat=-1
;
; ・書式 lsvsubadd lvshwnd,String,nIndex,SubIndex
; ・引数 lvshwnd (int) : Createlstviewで作成したハ...
; String (str) : サブ項目の文字列 or 文字...
; nIndex (int) : 0〜(0) 項目のインデックス...
; SubIndex (int) : 1〜(1) サブ項目のインデッ...
; ・タイプ モジュール命令
;
;-- (NOTE) ----------------------------------------------...
;
; (使用例)
; lsvsubadd lvshwnd,"さくら",0,1
; lsvsubadd lvshwnd,"おにたま",1,1
; lsvsubadd lvshwnd,"うすあじ",2,1
;
; lsvsubadd lvshwnd,"http://www.silkroad.ne.jp/sakura",...
; lsvsubadd lvshwnd,"http://www.onionsoft.net/",1,2
; lsvsubadd lvshwnd,"http://hspcenter.com/",2,2
;********************************************************...
lvshwnd = prm1 : if lvshwnd==0 : return -1
ls=strlen(prm2) : if ls==0 : return -1 : else : sdim St...
String = prm2
nIndex = prm3 : if nIndex<=0 : nIndex=0
SubIndex = prm4 : if SubIndex<=0 : SubIndex=1
;LVITEM構造体
dim tim,9
; $0001 = LVIF_TEXT
tim(0) = $0001 ;mask
tim(1) = nIndex ;iItem
tim(2) = SubIndex ;iSubItem
tim(5) = varptr(String) ;pszText
SendMessage lvshwnd,LVM_SETITEM,0,varptr(tim)
sdim String,0 : dim tim,0
return 0
#deffunc lsvchengeview int prm1,int prm2
;********************************************************...
; リストビューコントロール表示スタイル変更 (lsvchengevi...
;
; 戻り値 : 成功 stat=0, 失敗 stat=-1
;
; ・書式 lsvchengeview lvshwnd,nType
; ・引数 lvshwnd (int) : Createlstviewで作成したハ...
; nType (int) : 0〜3(0) 表示スタイル番号
;
; nType
; -------------------------------------------...
; 0 : 大きいアイコン (Image Listに大きい...
; 1 : 詳細表示
; 2 : 小さいアイコン
; 3 : 一覧表示
;
; ・タイプ モジュール命令
;
;-- (NOTE) ----------------------------------------------...
;
; (使用例)
; lsvchengeview lvshwnd,0
;********************************************************...
lvshwnd = prm1 : if lvshwnd==0 : return -1
nType = prm2 : if (nType<=0)|(nType>3) : nType=0
GetWindowLong lvshwnd,GWL_STYLE : dwstyle=stat
dwstyle=dwstyle&$FFFFFFFC|nType
SetWindowLong lvshwnd,GWL_STYLE,dwstyle
InvalidateRect lvshwnd,0,TRUE
return 0
#deffunc lsvsetbkcol int prm1,int prm2
;********************************************************...
; リストビューコントロールの背景色を設定 (lsvsetbkcol)
;
; 戻り値 : 成功 stat=0, 失敗 stat=-1
;
; ・書式 lsvsetbkcol lvshwnd,RGB(r,g,b)
; ・引数 lvshwnd (int) : Createlstviewで作成したハ...
; col (int) : 背景色 RGB(r,g,b)形式で指定
; ・タイプ モジュール命令
;
;-- (NOTE) ----------------------------------------------...
;
; (使用例)
; lsvsetbkcol lvshwnd,RGB(0,0,255)
;********************************************************...
mref bmscr,67
lvshwnd = prm1 : if lvshwnd==0 : return -1
col = prm2 : if col<0 : col=bmscr(40)
SendMessage lvshwnd,LVM_SETBKCOLOR,0,col
InvalidateRect lvshwnd,0,TRUE
return 0
#deffunc lsvsettxcol int prm1,int prm2,int prm3
;********************************************************...
; リストビューの項目のテキスト色・背景色を設定 (lsvsett...
;
; 戻り値 : 成功 stat=0, 失敗 stat=-1
;
; ・書式 lsvsettxcol lvshwnd,RGB(r,g,b),RGB(r,g,b)
; ・引数 lvshwnd (int) : Createlstviewで作成したハ...
; coltext (int) : 項目のテキスト色 RGB(r,g,b...
; colback (int) : 項目の背景色 RGB(r,g,b)形...
; ・タイプ モジュール命令
;
;-- (NOTE) ----------------------------------------------...
;
; (使用例)
; lsvsettxcol lvshwnd,RGB(255,255,255),RGB(0,0,255)
;********************************************************...
mref bmscr,67
lvshwnd = prm1 : if lvshwnd==0 : return -1
coltext = prm2 : if coltext<0 : col=bmscr(40)
colback = prm3 : if colback<0 : col=bmscr(40)
SendMessage lvshwnd,LVM_SETTEXTCOLOR,0,coltext
SendMessage lvshwnd,LVM_SETTEXTBKCOLOR,0,colback
InvalidateRect lvshwnd,0,TRUE
return 0
#defcfunc lsvgetcheck int prm1,int prm2
;********************************************************...
; リストビューコントロールのチエック項目状態を取得 (lsv...
;
; 戻り値 : チエック ON ret=1, チエックOFF ret=0, 失敗 r...
;
; ※この関数は、拡張スタイルで LVS_EX_CHECKBOXES が設定...
;
; ・書式 ret=lsvgetcheck(lvshwnd,nIndex)
; ・引数 lvshwnd (int) : Createlstviewで作成したハ...
; nIndex (int) : 0〜(0) 項目のインデックス...
; ・タイプ ユーザー定義関数
;
;-- (NOTE) ----------------------------------------------...
;
; (使用例)
; ret=lsvgetcheck(lvshwnd,2)
;********************************************************...
lvshwnd = prm1 : if lvshwnd==0 : return -1
nIndex = prm2 : if nIndex<=0 : nIndex=0
;ListView_GetCheckState
#undef LVIS_STATEIMAGEMASK
#define LVIS_STATEIMAGEMASK $0000F000
SendMessage lvshwnd,LVM_GETITEMSTATE,nIndex,LVIS_STATEIM...
ret=(stat>>12)-1
return ret
#deffunc lsvsetcheck int prm1,int prm2,int prm3
;********************************************************...
; リストビューコントロールのチエック項目を設定 (lsvsetc...
;
; 戻り値 : 成功 stat=0, 失敗 stat=-1
;
; ※この命令は、拡張スタイルで LVS_EX_CHECKBOXES が設定...
;
; ・書式 lsvsetcheck lvshwnd,nIndex,fCheck
; ・引数 lvshwnd (int) : Createlstviewで作成したハ...
; Index (int) : 0〜(0) 項目のインデックス...
; fCheck (int) : 0〜1(0) チエックフラグ
;
; fCheck
; -------------------------
; 1 : チェック設定
; 0 : チェック解除
;
; ・タイプ モジュール命令
;
;-- (NOTE) ----------------------------------------------...
;
; (使用例)
; lsvsetcheck lvshwnd,2,1
;********************************************************...
lvshwnd = prm1 : if lvshwnd==0 : return -1
nIndex = prm2 : if nIndex<=0 : nIndex=0
fCheck = prm3 : if (fCheck<=0)|(fCheck>1) : fCheck=0
;ListView_SetCheckState
#undef LVIS_STATEIMAGEMASK
#define LVIS_STATEIMAGEMASK $0000F000
;LVITEM構造体
dim tim,9
tim(3) = (fCheck+1)<<12
tim(4) = LVIS_STATEIMAGEMASK
SendMessage lvshwnd,LVM_SETITEMSTATE,nIndex,varptr(tim)
dim tim,0
return 0
#deffunc lsvcldel int prm1,int prm2
;********************************************************...
; リストビューコントロールのカラムを消去 (lsvcldel)
;
; 戻り値 : 成功 stat=0, 失敗 stat=-1
;
; ・書式 lsvcldel lvshwnd,nIndex
; ・引数 lvshwnd (int) : Createlstviewで作成したハ...
; nIndex (int) : 0〜(0) カラムのインデック...
; ・タイプ モジュール命令
;
;-- (NOTE) ----------------------------------------------...
;
; (使用例)
; lsvcldel lvshwnd,1
;********************************************************...
lvshwnd = prm1 : if lvshwnd==0 : return -1
nIndex = prm2 : if nIndex<=0 : nIndex=0
SendMessage lvshwnd,LVM_DELETECOLUMN,nIndex,0
return 0
#defcfunc lsvcount int prm1,int prm2
;********************************************************...
; リストビューコントロールのアイテムの数を取得 (lsvcount)
;
; 戻り値 : 項目数 ret=count, 失敗 ret=-1
;
; ・書式 ret=lsvcount(lvshwnd,nflag)
; ・引数 lvshwnd (int) : Createlstviewで作成したハ...
; nflag (int) : 0〜1(0) 取得フラグ
;
; nflag
; ------------------------------------------
; 0 : LVM_GETITEMCOUNT
; 1 : LVM_GETCOUNTPERPAGE
;
; ・タイプ ユーザー定義関数
;
;-- (NOTE) ----------------------------------------------...
;
; (使用例)
; mes "アイテムの数 : "+lsvcount(lvshwnd,0)
;********************************************************...
lvshwnd = prm1 : if lvshwnd==0 : return -1
nflag = prm2 : if (nflag<=0)|(nflag>1) : nflag=0
if nflag==0 : nMsg=LVM_GETITEMCOUNT
if nflag==1 : nMsg=LVM_GETCOUNTPERPAGE
SendMessage lvshwnd,nMsg,0,0
return stat
#defcfunc lsvfound int prm1,int prm2
;********************************************************...
; リストビューコントロールの選択アイテム取得 (lsvfound)
;
; 戻り値 : 選択項目 ret=選択項目Index, 失敗 ret=-1
;
; ・書式 ret=lsvfound(lvshwnd,nIndex)
; ・引数 lvshwnd (int) : Createlstviewで作成したハ...
; nIndex (int) : -1〜(-1) 項目インデックス...
; ・タイプ ユーザー定義関数
;
;-- (NOTE) ----------------------------------------------...
;
; (使用例)
; SelItem=lsvfound(lvshwnd,2)
;********************************************************...
lvshwnd = prm1 : if lvshwnd==0 : return -1
nIndex = prm2 : if nIndex<=-1 : nIndex=-1
SendMessage lvshwnd,LVM_GETNEXTITEM,nIndex,$2
return stat
#deffunc lsvimdel int prm1,int prm2
;********************************************************...
; リストビューコントロールの項目を消去 (lsvimdel)
;
; 戻り値 : 成功 stat=0, 失敗 stat=-1
;
; ・書式 lsvimdel lvshwnd,nIndex
; ・引数 lvshwnd (int) : Createlstviewで作成したハ...
; nIndex (int) : -1 or -1以外 操作モード
;
; nIndex
; ---------------------------
; -1 : 全項目の消去
; -1以外 : 指定Index項目
;
; ・タイプ モジュール命令
;
;-- (NOTE) ----------------------------------------------...
;
; (使用例)
; lsvimdel lvshwnd,1
;********************************************************...
lvshwnd = prm1 : if lvshwnd==0 : return -1
nIndex = prm2
if nIndex==-1 {
SendMessage lvshwnd,LVM_DELETEALLITEMS,-1,0
}else{
SendMessage lvshwnd,LVM_DELETEITEM,nIndex,0
}
return 0
#deffunc lsvgetstr var prm1,int prm2,int prm3,int prm4
;********************************************************...
; リストビューコントロールの項目の文字列を取得 (lsvgets...
;
; 戻り値 : 成功 stat=0, 失敗 stat=-1, Value=取得文字列
;
; ・書式 lsvgetstr Value,lvshwnd,nIndex,SubIndex
; ・引数 Value (var) : 文字列型変数
; lvshwnd (int) : Createlstviewで作成したハ...
; nIndex (int) : 0〜(0) 項目のインデックス...
; SubIndex (int) : 0〜(0) サブ項目のインデッ...
; ・タイプ モジュール命令
;
;-- (NOTE) ----------------------------------------------...
;
; (使用例)
; lsvgetstr s,lvshwnd,0,1
;********************************************************...
if vartype(prm1)!2 : prm1 = ""
lvshwnd = prm2 : if lvshwnd==0 : return -1
nIndex = prm3 : if nIndex<=0 : nIndex=0
suIndex = prm4 : if suIndex<=0 : suIndex=0
sdim String,512
#undef LVIF_TEXT
#define LVIF_TEXT $00000001
;LVITEM構造体
dim tim,9
tim(0) = LVIF_TEXT ;mask
tim(1) = nIndex ;iItem
tim(2) = suIndex ;iSubItem
tim(5) = varptr(String) ;pszText
tim(6) = 512 ;cchTextMax
SendMessage lvshwnd,LVM_GETITEM,0,varptr(tim)
prm1=String : sdim String,0
return 0
#deffunc lsvsetstr int prm1,str prm2,int prm3,int prm4
;********************************************************...
; リストビューコントロールの項目の文字列を設定 (lsvsets...
;
; 戻り値 : 成功 stat=0, 失敗 stat=-1
;
; ・書式 lsvsetstr lvshwnd,String,nIndex,SubIndex
; ・引数 lvshwnd (int) : Createlstviewで作成したハ...
; String (str) : 文字列 or 文字列型変数
; nIndex (int) : 0〜(0) 項目のインデックス...
; SubIndex (int) : 0〜(0) サブ項目のインデッ...
; ・タイプ モジュール命令
;
;-- (NOTE) ----------------------------------------------...
;
; (使用例)
; lsvsetstr lvshwnd,"sample",2,1
;********************************************************...
lvshwnd = prm1 : if lvshwnd==0 : return -1
ls=strlen(prm2): if ls==-1 : return -1 : else : sdim Str...
String = prm2
nIndex = prm3 : if nIndex<=0 : nIndex=0
suIndex = prm4 : if suIndex<=0 : suIndex=1
#undef LVIF_TEXT
#define LVIF_TEXT $00000001
;LVITEM構造体
dim tim,9
tim(0) = LVIF_TEXT ;mask
tim(1) = nIndex ;iItem
tim(2) = suIndex ;iSubItem
tim(5) = varptr(String) ;pszText
tim(6) = ls ;cchTextMax
SendMessage lvshwnd,LVM_SETITEM,0,varptr(tim)
sdim String,0
return 0
#deffunc lsvimsel int prm1,int prm2,int prm3
;********************************************************...
; リストビューコントロールの項目を選択 (lsvimsel)
;
; 戻り値 : 成功 stat=0, 失敗 stat=-1
;
; ・書式 lsvimsel lvshwnd,nIndex,nflag
; ・引数 lvshwnd (int) : Createlstviewで作成したハ...
; nIndex (int) : 0〜(0) 項目のインデックス...
; nflag (int) : -1〜(3)61440 (通常は3を指...
;
; nflag
; -------------------------------------------...
; -1 0
; 0 LVIS_FOCUSED|...
; LVIS_FOCUSED 1
; LVIS_SELECTED 2
; LVIS_CUT 4
; LVIS_DROPHILITED 8
; LVIS_OVERLAYMASK 3840
; LVIS_STATEIMAGEMASK 61440
;
; ・タイプ モジュール命令
;
;-- (NOTE) ----------------------------------------------...
;
; (使用例)
; lsvimsel lvshwnd,2,3
;********************************************************...
lvshwnd = prm1 : if lvshwnd==0 : return -1
nIndex = prm2 : if nIndex<=0 : nIndex=0
nflag = prm3 : if nflag<0 : nflag=3
if nflag=-1 : nflag=0
if nflag==0 : nflag=3
#undef LVIF_STATE
#define LVIF_STATE $00000008
;LVITEM構造体
dim tim,9
tim(0) = LVIF_STATE ;mask
tim(1) = nIndex ;iItem
tim(2) = 0 ;iSubItem
tim(3) = nflag ;state
tim(4) = $ffffffff ;stateMask
SendMessage lvshwnd,LVM_SETITEMA,0,varptr(tim)
SetFocus lvshwnd
return 0
#deffunc lsvcolumorder int prm1,array prm2,int prm3
;********************************************************...
; リストビューコントロールのカラムの並び順を設定 (lsvco...
;
; 戻り値 : 成功 stat=0, 失敗 stat=-1
;
; ※この命令は、拡張スタイルで LVS_EX_HEADERDRAGDROP が...
;
; ・書式 lsvcolumorder lvshwnd,Columarray,Columnum
; ・引数 lvshwnd (int) : Createlstviewで作成し...
; Columarray (array) : 設定するカラム順序を...
; 例 : Columarray=3,2,0,1
; Columnum (int) : カラムの数
; ・タイプ モジュール命令
;
;-- (NOTE) ----------------------------------------------...
;
; (使用例)
; Columarray=3,2,0,1
; lsvcolumorder lvshwnd,Columarray,4
;********************************************************...
lvshwnd = prm1 : if lvshwnd==0 : return -1
Columnum = prm3 : if Columnum<=0 : Columnum=0
OrderArray = prm2
SendMessage lvshwnd,LVM_SETCOLUMNORDERARRAY,Columnum,var...
return 0
#deffunc lsvgetclmwidth int prm1,int prm2
;********************************************************...
; リストビューコントロールのカラムの幅を取得 (lsvgetclm...
;
; 戻り値 : カラム幅 stat=ColomuWidth, 失敗 stat=-1
;
; ・書式 lsvgetclmwidth lvshwnd,nColomu
; ・引数 lvshwnd (int) : Createlstviewで作成したハ...
; nColomu (int) : 0〜(0) カラム幅を取得する...
; ・タイプ モジュール命令
;
;-- (NOTE) ----------------------------------------------...
;
; (使用例)
; lsvgetclmwidth lvshwnd,2 : ColomuWidth=stat : mes Col...
;********************************************************...
lvshwnd = prm1 : if lvshwnd==0 : return -1
nColomu = prm2 : if nColomu<=0 : nColomu=0
SendMessage lvshwnd,LVM_GETCOLUMNWIDTH,nColomu,0
return stat
#deffunc lsvsetclmwidth int prm1,int prm2,int prm3
;********************************************************...
; リストビューコントロールのカラムの幅を設定 (lsvsetclm...
;
; 戻り値 : 成功 stat=0, 失敗 stat=-1
;
; ・書式 lsvsetclmwidth lvshwnd,nColomu,nColwid
; ・引数 lvshwnd (int) : Createlstviewで作成したハ...
; nColomu (int) : 0〜(0) カラム幅を設定す...
; nColwid (int) : 0〜(100) カラムの幅(const...
; ・タイプ モジュール命令
;
;-- (NOTE) ----------------------------------------------...
;
; (使用例)
; lsvsetclmwidth lvshwnd,2,70
;********************************************************...
lvshwnd = prm1 : if lvshwnd==0 : return -1
nColomu = prm2 : if nColomu<=0 : nColomu=0
lvAUTOSIZE=0
nColwid = prm3 : if nColwid<0 : nColwid=-nColwid :lvAUT...
;nColwidに直接、下記の値を設定することもできる。
;#define LVSCW_AUTOSIZE $FFFFFFFF アイテム...
;#define LVSCW_AUTOSIZE_USEHEADER $FFFFFFFE ヘッダの...
if lvAUTOSIZE=1 {
SendMessage lvshwnd,LVM_SETCOLUMNWIDTH,nColomu,$FFFFFFFF
SendMessage lvshwnd,LVM_GETCOLUMNWIDTH,nColomu,0
if nColwid < stat :return 0
}
SendMessage lvshwnd,LVM_SETCOLUMNWIDTH,nColomu,nColwid
return 0
#undef ICC_LISTVIEW_CLASSES
#undef LVIS_STATEIMAGEMASK
#undef LVIF_STATE
#undef LVIF_TEXT
#global
#endif
#endif
;--------------------------------------------------------...
}}
#comment
終了行:
#set_tags(GetTimetagLyricsスクリプト)
#pre{{
; ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄...
; exlistview'.hsp (HSP-NEXT さくら様作) [ちょっと改造]
;
; リストビューモジュール
;____________________________...
;********************************************************...
; (exlistview.as) for HSP3.0 リストビューコントロール関...
;
; #include する必要なプラグインやマクロファイル
; #include "sysval.as"
; #include "gblconst.as"
; #include "winapi32.as"
;
; ※下記のlibraryは、winapi32.asにまとめてあります。
;
; #include "user32.as"
; #include "comctl32.as"
;
; ※モジュール番号の左側に'*'が付いているものは、ユーザー...
; それ以外のものは、モジュール命令となっています。
;
;--------------------------------------------------------...
;
;* 1. リストビューコントロールを作成 ...
; 2. リストビューコントロール拡張スタイルの設定 ...
; 3. リストビューコントロールにカラムを追加 ...
; 4. リストビューコントロールにアイテム追加 ...
; 5. リストビューコントロールにイメージ設定 ...
; 6. リストビューコントロールにサブアイテム追加 ...
; 7. リストビューコントロール表示スタイル変更 ...
; 8. リストビューコントロールの背景色を設定 ...
; 9. リストビューの項目のテキスト色・背景色を設定 ...
;*10. リストビューコントロールのチエック項目状態を取得 ...
; 11. リストビューコントロールのチエック項目を設定 ...
; 12. リストビューコントロールのカラムを消去 ...
;*13. リストビューコントロールのアイテムの数を取得 ...
;*14. リストビューコントロールの選択アイテム取得 ...
; 15. リストビューコントロールの項目を消去 ...
; 16. リストビューコントロールの項目の文字列を取得 ...
; 17. リストビューコントロールの項目の文字列を設定 ...
; 18. リストビューコントロールの項目を選択 ...
; 19. リストビューコントロールのカラムの順を設定 ...
; 20. リストビューコントロールのカラムの幅を取得 ...
; 21. リストビューコントロールのカラムの幅を設定 ...
;
; 最終更新...
;********************************************************...
#ifdef __hsp30__
#ifndef __EXLISTVIEW__
#define __EXLISTVIEW__
#module
#defcfunc Createlstview int prm1,int prm2,int prm3,int pr...
;********************************************************...
; リストビューコントロールを作成 (Createlstview)
;
; 戻り値 : 成功 lvshwnd=リストビューハンドル, 失敗 lvsh...
;
; ・書式 lvshwnd=Createlstview(nMode,nPosx,nPosy,nW...
; ・引数 nMode (int) : 0〜1(0) ソート...
; nPosx (int) : 0〜winx(pos x) 位置 x
; nPosy (int) : 0〜winy(pos y) 位置 y
; nWidth (int) : 0〜winx(objsize x) 幅
; nHeight (int) : 0〜winy(objsize y) 高さ
;
; nMode
; ---------------------------------------
; 0 : LVS_NOSORTHEADERを付加する
; 1 : LVS_NOSORTHEADERを付加しない
;
; ・タイプ ユーザー定義関数
;
;-- (NOTE) ----------------------------------------------...
;
; (使用例)
; lvshwnd=Createlstview(0,0,0,600,400)
;********************************************************...
mref bmscr,67
nMode = prm1 ;: if (nMode<=0)|(nMode>1) : nMode ...
nPosx = prm2 ;: if (nPosx<=0)|(nPosx>winx) : nPosx ...
nPosy = prm3 ;: if (nPosy<=0)|(nPosy>winy) : nPosy ...
nWidth = prm4 ;: if (nWidth<=0)|(nWidth>winx) : nWidth...
nHeight= prm5 ;: if (nHeight<=0)|(nHeight>winy) : nHeigh...
;CommonControl初期化
; #undef ICC_LISTVIEW_CLASSES
; #define ICC_LISTVIEW_CLASSES $00000001
; icx(0) = 8 : icx(1) = ICC_LISTVIEW_CLASSES
; InitCommonControlsEx varptr(icx)
;LVS_NOSORTHEADERを付加
if nMode==1 : nStyle=LVS_NOSORTHEADER : else : nStyle=0
dwStyle =WS_CHILD|WS_VISIBLE|LVS_REPORT|nStyle
class ="SysListView32" : pClass=varptr(class)
CreateWindowEx 0,pClass,0,dwStyle,nPosx,nPosy,nWidth,nHe...
lvshwnd=stat : if lvshwnd==0 : return -1
return lvshwnd
#deffunc lsvexset int prm1,int prm2
;********************************************************...
; リストビューコントロール拡張スタイルの設定 (lsvexset)
;
; 戻り値 : 成功 stat=0, 失敗 stat=-1
;
; ・書式 lsvexset lvshwnd,nStyle
; ・引数 lvshwnd (int) : Createlstviewで作成したハ...
; nStyle (int) : 0〜(0) 拡張スタイル (const...
; ・タイプ モジュール命令
;
;-- (NOTE) ----------------------------------------------...
;
; (使用例)
; lsvexset lvshwnd,$0005
;********************************************************...
lvshwnd = prm1 : if lvshwnd==0 : return -1
nStyle = prm2 : if nStyle<=0 : nStyle=0
; nStyle : 拡張スタイル (組合せて指定可)
; <<<nStyleに値を直接指定すること>>>
;---------------------------------------
; LVS_EX_GRIDLINES $0001
; LVS_EX_SUBITEMIMAGES $0002
; LVS_EX_CHECKBOXES $0004
; LVS_EX_TRACKSELECT $0008
; LVS_EX_HEADERDRAGDROP $0010
; LVS_EX_FULLROWSELECT $0020
; LVS_EX_ONECLICKACTIVATE $0040
; LVS_EX_TWOCLICKACTIVATE $0080
; LVS_EX_FLATSB $0100
; LVS_EX_REGIONAL $0200
; LVS_EX_INFOTIP $0400
; LVS_EX_UNDERLINEHOT $0800
; LVS_EX_UNDERLINECOLD $1000
; LVS_EX_MULTIWORKAREAS $2000
;拡張スタイルを取得 (ListView_GetExtendedListViewStyle)
SendMessage lvshwnd,LVM_GETEXTENDEDLISTVIEWSTYLE,0,0
dwExstyle=stat : dwExstyle+=nStyle
;拡張スタイルを設定 (ListView_SetExtendedListViewStyle)
SendMessage lvshwnd,LVM_SETEXTENDEDLISTVIEWSTYLE,0,dwExs...
return 0
#deffunc lsvcladd int prm1,str prm2,int prm3,int prm4,int...
;********************************************************...
; リストビューコントロールにカラムを追加 (lsvcladd)
;
; 戻り値 : 成功 stat=0, 失敗 stat=-1
;
; ・書式 lsvcladd lvshwnd,String,nIndex,Image,cwidt...
; ・引数 lvshwnd (int) : Createlstviewで作成したハ...
; String (str) : カラムヘッダー文字列 or 文...
; nIndex (int) : 0〜(0) 項目のインデック...
; Image (int) : 0〜(0) 追加するイメージ...
; cwidth (int) : 0〜(100) カラムの幅 (const...
; cfmt (int) : 0〜2(0) 配置フォーマット
; Imadd (int) : 0〜(0) イメージフラグ(通...
;
; cfmt
; ---------------------
; 0 : 左に配置
; 1 : 右に配置
; 2 : 中央に配置
;
; ・タイプ モジュール命令
;
;-- (NOTE) ----------------------------------------------...
;
; (使用例)
; lsvcladd lvshwnd,"サイト名",0,0,200,0,0
; lsvcladd lvshwnd,"作者",1,0,100,0,0
; lsvcladd lvshwnd,"アドレス",2,0,300,0,0
;********************************************************...
lvshwnd = prm1 : if lvshwnd==0 : return -1
ls=strlen(prm2) : if ls==0 : return -1 : else : sdim Str...
String = prm2
nIndex = prm3 : if nIndex<=0 : nIndex=0
Image = prm4 : if Image<=0 : Image=0
cwidth = prm5 : if cwidth<=0 : cwidth=100
cfmt = prm6 : if (cfmt<=0)|(cfmt>2) : cfmt=0
Imadd = prm7 : if Imadd<=0 : Imadd=0
; cwidth
; 数値で直接指定 : 0〜
; $FFFFFFFF : アイテムのサイズに応じて調整
; $FFFFFFFE : ヘッダの文字列サイズに合わせる
;LVCOLUMN構造体
dim tcl,7
; $000F = LVCF_FMT|LVCF_WIDTH|LVCF_TEXT|LVCF_SUBITEM
tcl(0) = $000F|Imadd ;mask
tcl(1) = cfmt|Imadd ;fmt
tcl(2) = cwidth ;cx
tcl(3) = varptr(String) ;pszText
tcl(4) = strlen(String) ;cchTextMax
tcl(5) = nIndex ;iSubItem
tcl(6) = Image ;iImage
SendMessage lvshwnd,LVM_INSERTCOLUMN,nIndex,varptr(tcl)
sdim String,0 : dim tcl,0
return 0
#deffunc lsvimadd int prm1,str prm2,int prm3,int prm4
;********************************************************...
; リストビューコントロールにアイテム追加 (lsvimadd)
;
; 戻り値 : 成功 stat=0, 失敗 stat=-1
;
; ・書式 lsvimadd lvshwnd,String,nIndex,Image
; ・引数 lvshwnd (int) : Createlstviewで作成したハ...
; String (str) : カラムヘッダー文字列 or 文...
; nIndex (int) : 0〜(0) 項目のインデックス...
; Image (int) : 0〜(0) 追加するイメージリ...
; ・タイプ モジュール命令
;
;-- (NOTE) ----------------------------------------------...
;
; (使用例)
; lsvimadd lvshwnd,"HSP-NEXT",0,0
; lsvimadd lvshwnd,"ONION software HOMEPAGE",1,0
; lsvimadd lvshwnd,"HSP CENTER",2,0
;********************************************************...
lvshwnd = prm1 : if lvshwnd==0 : return -1
ls=strlen(prm2) : if ls==0 : return -1 : else : sdim St...
String = prm2
nIndex = prm3 : if nIndex<=0 : nIndex=0
Image = prm4 : if Image<=0 : Image=0
;LVITEM構造体
dim tim,9
; $0003 = LVIF_TEXT|LVIF_IMAGE
tim(0) = $0003 ;mask
tim(1) = nIndex ;iItem
tim(2) = 0 ;iSubItem
tim(5) = varptr(String) ;pszText
tim(6) = strlen(String) ;cchTextMax
tim(7) = Image ;iImage
;tim(3) state
;tim(4) stateMask
;tim(8) lParam
SendMessage lvshwnd,LVM_INSERTITEM,0,varptr(tim)
sdim String,0 : dim tim,0
return 0
#deffunc lsvimgset int prm1,int prm2,int prm3
;********************************************************...
; リストビューコントロールにイメージ設定 (lsvimgset)
;
; 戻り値 : 成功 stat=0, 失敗 stat=-1
;
; ・書式 lsvimgset lvshwnd,Imghwnd,Imgmode
; ・引数 lvshwnd (int) : Createlstviewで作成したハ...
; Imghwnd (int) : Createimglistで作成したハ...
; Imgmode (int) : アイコンモード
;
; Imgmode
; --------------------------
; -1 : 非表示
; 0 : 大きいアイコン
; 1 : 小さいアイコン
;
; ・タイプ モジュール命令
;
;-- (NOTE) ----------------------------------------------...
;
; (使用例)
; lsvimgset lvshwnd,himgwnd1,0
; lsvimgset lvshwnd,himgwnd2,1
;********************************************************...
lvshwnd = prm1 : if lvshwnd==0 : return -1
Imghwnd = prm2 : if Imghwnd==0 : return -1
Imgmode = prm3 : if (Imgmode<-1)|(Imgmode>1) : return -1
;リストビューにイメージリストを設定
SendMessage lvshwnd,LVM_SETIMAGELIST,Imgmode,Imghwnd
return 0
#deffunc lsvsubadd int prm1,str prm2,int prm3,int prm4
;********************************************************...
; リストビューコントロールにサブアイテム追加 (lsvsubadd)
;
; 戻り値 : 成功 stat=0, 失敗 stat=-1
;
; ・書式 lsvsubadd lvshwnd,String,nIndex,SubIndex
; ・引数 lvshwnd (int) : Createlstviewで作成したハ...
; String (str) : サブ項目の文字列 or 文字...
; nIndex (int) : 0〜(0) 項目のインデックス...
; SubIndex (int) : 1〜(1) サブ項目のインデッ...
; ・タイプ モジュール命令
;
;-- (NOTE) ----------------------------------------------...
;
; (使用例)
; lsvsubadd lvshwnd,"さくら",0,1
; lsvsubadd lvshwnd,"おにたま",1,1
; lsvsubadd lvshwnd,"うすあじ",2,1
;
; lsvsubadd lvshwnd,"http://www.silkroad.ne.jp/sakura",...
; lsvsubadd lvshwnd,"http://www.onionsoft.net/",1,2
; lsvsubadd lvshwnd,"http://hspcenter.com/",2,2
;********************************************************...
lvshwnd = prm1 : if lvshwnd==0 : return -1
ls=strlen(prm2) : if ls==0 : return -1 : else : sdim St...
String = prm2
nIndex = prm3 : if nIndex<=0 : nIndex=0
SubIndex = prm4 : if SubIndex<=0 : SubIndex=1
;LVITEM構造体
dim tim,9
; $0001 = LVIF_TEXT
tim(0) = $0001 ;mask
tim(1) = nIndex ;iItem
tim(2) = SubIndex ;iSubItem
tim(5) = varptr(String) ;pszText
SendMessage lvshwnd,LVM_SETITEM,0,varptr(tim)
sdim String,0 : dim tim,0
return 0
#deffunc lsvchengeview int prm1,int prm2
;********************************************************...
; リストビューコントロール表示スタイル変更 (lsvchengevi...
;
; 戻り値 : 成功 stat=0, 失敗 stat=-1
;
; ・書式 lsvchengeview lvshwnd,nType
; ・引数 lvshwnd (int) : Createlstviewで作成したハ...
; nType (int) : 0〜3(0) 表示スタイル番号
;
; nType
; -------------------------------------------...
; 0 : 大きいアイコン (Image Listに大きい...
; 1 : 詳細表示
; 2 : 小さいアイコン
; 3 : 一覧表示
;
; ・タイプ モジュール命令
;
;-- (NOTE) ----------------------------------------------...
;
; (使用例)
; lsvchengeview lvshwnd,0
;********************************************************...
lvshwnd = prm1 : if lvshwnd==0 : return -1
nType = prm2 : if (nType<=0)|(nType>3) : nType=0
GetWindowLong lvshwnd,GWL_STYLE : dwstyle=stat
dwstyle=dwstyle&$FFFFFFFC|nType
SetWindowLong lvshwnd,GWL_STYLE,dwstyle
InvalidateRect lvshwnd,0,TRUE
return 0
#deffunc lsvsetbkcol int prm1,int prm2
;********************************************************...
; リストビューコントロールの背景色を設定 (lsvsetbkcol)
;
; 戻り値 : 成功 stat=0, 失敗 stat=-1
;
; ・書式 lsvsetbkcol lvshwnd,RGB(r,g,b)
; ・引数 lvshwnd (int) : Createlstviewで作成したハ...
; col (int) : 背景色 RGB(r,g,b)形式で指定
; ・タイプ モジュール命令
;
;-- (NOTE) ----------------------------------------------...
;
; (使用例)
; lsvsetbkcol lvshwnd,RGB(0,0,255)
;********************************************************...
mref bmscr,67
lvshwnd = prm1 : if lvshwnd==0 : return -1
col = prm2 : if col<0 : col=bmscr(40)
SendMessage lvshwnd,LVM_SETBKCOLOR,0,col
InvalidateRect lvshwnd,0,TRUE
return 0
#deffunc lsvsettxcol int prm1,int prm2,int prm3
;********************************************************...
; リストビューの項目のテキスト色・背景色を設定 (lsvsett...
;
; 戻り値 : 成功 stat=0, 失敗 stat=-1
;
; ・書式 lsvsettxcol lvshwnd,RGB(r,g,b),RGB(r,g,b)
; ・引数 lvshwnd (int) : Createlstviewで作成したハ...
; coltext (int) : 項目のテキスト色 RGB(r,g,b...
; colback (int) : 項目の背景色 RGB(r,g,b)形...
; ・タイプ モジュール命令
;
;-- (NOTE) ----------------------------------------------...
;
; (使用例)
; lsvsettxcol lvshwnd,RGB(255,255,255),RGB(0,0,255)
;********************************************************...
mref bmscr,67
lvshwnd = prm1 : if lvshwnd==0 : return -1
coltext = prm2 : if coltext<0 : col=bmscr(40)
colback = prm3 : if colback<0 : col=bmscr(40)
SendMessage lvshwnd,LVM_SETTEXTCOLOR,0,coltext
SendMessage lvshwnd,LVM_SETTEXTBKCOLOR,0,colback
InvalidateRect lvshwnd,0,TRUE
return 0
#defcfunc lsvgetcheck int prm1,int prm2
;********************************************************...
; リストビューコントロールのチエック項目状態を取得 (lsv...
;
; 戻り値 : チエック ON ret=1, チエックOFF ret=0, 失敗 r...
;
; ※この関数は、拡張スタイルで LVS_EX_CHECKBOXES が設定...
;
; ・書式 ret=lsvgetcheck(lvshwnd,nIndex)
; ・引数 lvshwnd (int) : Createlstviewで作成したハ...
; nIndex (int) : 0〜(0) 項目のインデックス...
; ・タイプ ユーザー定義関数
;
;-- (NOTE) ----------------------------------------------...
;
; (使用例)
; ret=lsvgetcheck(lvshwnd,2)
;********************************************************...
lvshwnd = prm1 : if lvshwnd==0 : return -1
nIndex = prm2 : if nIndex<=0 : nIndex=0
;ListView_GetCheckState
#undef LVIS_STATEIMAGEMASK
#define LVIS_STATEIMAGEMASK $0000F000
SendMessage lvshwnd,LVM_GETITEMSTATE,nIndex,LVIS_STATEIM...
ret=(stat>>12)-1
return ret
#deffunc lsvsetcheck int prm1,int prm2,int prm3
;********************************************************...
; リストビューコントロールのチエック項目を設定 (lsvsetc...
;
; 戻り値 : 成功 stat=0, 失敗 stat=-1
;
; ※この命令は、拡張スタイルで LVS_EX_CHECKBOXES が設定...
;
; ・書式 lsvsetcheck lvshwnd,nIndex,fCheck
; ・引数 lvshwnd (int) : Createlstviewで作成したハ...
; Index (int) : 0〜(0) 項目のインデックス...
; fCheck (int) : 0〜1(0) チエックフラグ
;
; fCheck
; -------------------------
; 1 : チェック設定
; 0 : チェック解除
;
; ・タイプ モジュール命令
;
;-- (NOTE) ----------------------------------------------...
;
; (使用例)
; lsvsetcheck lvshwnd,2,1
;********************************************************...
lvshwnd = prm1 : if lvshwnd==0 : return -1
nIndex = prm2 : if nIndex<=0 : nIndex=0
fCheck = prm3 : if (fCheck<=0)|(fCheck>1) : fCheck=0
;ListView_SetCheckState
#undef LVIS_STATEIMAGEMASK
#define LVIS_STATEIMAGEMASK $0000F000
;LVITEM構造体
dim tim,9
tim(3) = (fCheck+1)<<12
tim(4) = LVIS_STATEIMAGEMASK
SendMessage lvshwnd,LVM_SETITEMSTATE,nIndex,varptr(tim)
dim tim,0
return 0
#deffunc lsvcldel int prm1,int prm2
;********************************************************...
; リストビューコントロールのカラムを消去 (lsvcldel)
;
; 戻り値 : 成功 stat=0, 失敗 stat=-1
;
; ・書式 lsvcldel lvshwnd,nIndex
; ・引数 lvshwnd (int) : Createlstviewで作成したハ...
; nIndex (int) : 0〜(0) カラムのインデック...
; ・タイプ モジュール命令
;
;-- (NOTE) ----------------------------------------------...
;
; (使用例)
; lsvcldel lvshwnd,1
;********************************************************...
lvshwnd = prm1 : if lvshwnd==0 : return -1
nIndex = prm2 : if nIndex<=0 : nIndex=0
SendMessage lvshwnd,LVM_DELETECOLUMN,nIndex,0
return 0
#defcfunc lsvcount int prm1,int prm2
;********************************************************...
; リストビューコントロールのアイテムの数を取得 (lsvcount)
;
; 戻り値 : 項目数 ret=count, 失敗 ret=-1
;
; ・書式 ret=lsvcount(lvshwnd,nflag)
; ・引数 lvshwnd (int) : Createlstviewで作成したハ...
; nflag (int) : 0〜1(0) 取得フラグ
;
; nflag
; ------------------------------------------
; 0 : LVM_GETITEMCOUNT
; 1 : LVM_GETCOUNTPERPAGE
;
; ・タイプ ユーザー定義関数
;
;-- (NOTE) ----------------------------------------------...
;
; (使用例)
; mes "アイテムの数 : "+lsvcount(lvshwnd,0)
;********************************************************...
lvshwnd = prm1 : if lvshwnd==0 : return -1
nflag = prm2 : if (nflag<=0)|(nflag>1) : nflag=0
if nflag==0 : nMsg=LVM_GETITEMCOUNT
if nflag==1 : nMsg=LVM_GETCOUNTPERPAGE
SendMessage lvshwnd,nMsg,0,0
return stat
#defcfunc lsvfound int prm1,int prm2
;********************************************************...
; リストビューコントロールの選択アイテム取得 (lsvfound)
;
; 戻り値 : 選択項目 ret=選択項目Index, 失敗 ret=-1
;
; ・書式 ret=lsvfound(lvshwnd,nIndex)
; ・引数 lvshwnd (int) : Createlstviewで作成したハ...
; nIndex (int) : -1〜(-1) 項目インデックス...
; ・タイプ ユーザー定義関数
;
;-- (NOTE) ----------------------------------------------...
;
; (使用例)
; SelItem=lsvfound(lvshwnd,2)
;********************************************************...
lvshwnd = prm1 : if lvshwnd==0 : return -1
nIndex = prm2 : if nIndex<=-1 : nIndex=-1
SendMessage lvshwnd,LVM_GETNEXTITEM,nIndex,$2
return stat
#deffunc lsvimdel int prm1,int prm2
;********************************************************...
; リストビューコントロールの項目を消去 (lsvimdel)
;
; 戻り値 : 成功 stat=0, 失敗 stat=-1
;
; ・書式 lsvimdel lvshwnd,nIndex
; ・引数 lvshwnd (int) : Createlstviewで作成したハ...
; nIndex (int) : -1 or -1以外 操作モード
;
; nIndex
; ---------------------------
; -1 : 全項目の消去
; -1以外 : 指定Index項目
;
; ・タイプ モジュール命令
;
;-- (NOTE) ----------------------------------------------...
;
; (使用例)
; lsvimdel lvshwnd,1
;********************************************************...
lvshwnd = prm1 : if lvshwnd==0 : return -1
nIndex = prm2
if nIndex==-1 {
SendMessage lvshwnd,LVM_DELETEALLITEMS,-1,0
}else{
SendMessage lvshwnd,LVM_DELETEITEM,nIndex,0
}
return 0
#deffunc lsvgetstr var prm1,int prm2,int prm3,int prm4
;********************************************************...
; リストビューコントロールの項目の文字列を取得 (lsvgets...
;
; 戻り値 : 成功 stat=0, 失敗 stat=-1, Value=取得文字列
;
; ・書式 lsvgetstr Value,lvshwnd,nIndex,SubIndex
; ・引数 Value (var) : 文字列型変数
; lvshwnd (int) : Createlstviewで作成したハ...
; nIndex (int) : 0〜(0) 項目のインデックス...
; SubIndex (int) : 0〜(0) サブ項目のインデッ...
; ・タイプ モジュール命令
;
;-- (NOTE) ----------------------------------------------...
;
; (使用例)
; lsvgetstr s,lvshwnd,0,1
;********************************************************...
if vartype(prm1)!2 : prm1 = ""
lvshwnd = prm2 : if lvshwnd==0 : return -1
nIndex = prm3 : if nIndex<=0 : nIndex=0
suIndex = prm4 : if suIndex<=0 : suIndex=0
sdim String,512
#undef LVIF_TEXT
#define LVIF_TEXT $00000001
;LVITEM構造体
dim tim,9
tim(0) = LVIF_TEXT ;mask
tim(1) = nIndex ;iItem
tim(2) = suIndex ;iSubItem
tim(5) = varptr(String) ;pszText
tim(6) = 512 ;cchTextMax
SendMessage lvshwnd,LVM_GETITEM,0,varptr(tim)
prm1=String : sdim String,0
return 0
#deffunc lsvsetstr int prm1,str prm2,int prm3,int prm4
;********************************************************...
; リストビューコントロールの項目の文字列を設定 (lsvsets...
;
; 戻り値 : 成功 stat=0, 失敗 stat=-1
;
; ・書式 lsvsetstr lvshwnd,String,nIndex,SubIndex
; ・引数 lvshwnd (int) : Createlstviewで作成したハ...
; String (str) : 文字列 or 文字列型変数
; nIndex (int) : 0〜(0) 項目のインデックス...
; SubIndex (int) : 0〜(0) サブ項目のインデッ...
; ・タイプ モジュール命令
;
;-- (NOTE) ----------------------------------------------...
;
; (使用例)
; lsvsetstr lvshwnd,"sample",2,1
;********************************************************...
lvshwnd = prm1 : if lvshwnd==0 : return -1
ls=strlen(prm2): if ls==-1 : return -1 : else : sdim Str...
String = prm2
nIndex = prm3 : if nIndex<=0 : nIndex=0
suIndex = prm4 : if suIndex<=0 : suIndex=1
#undef LVIF_TEXT
#define LVIF_TEXT $00000001
;LVITEM構造体
dim tim,9
tim(0) = LVIF_TEXT ;mask
tim(1) = nIndex ;iItem
tim(2) = suIndex ;iSubItem
tim(5) = varptr(String) ;pszText
tim(6) = ls ;cchTextMax
SendMessage lvshwnd,LVM_SETITEM,0,varptr(tim)
sdim String,0
return 0
#deffunc lsvimsel int prm1,int prm2,int prm3
;********************************************************...
; リストビューコントロールの項目を選択 (lsvimsel)
;
; 戻り値 : 成功 stat=0, 失敗 stat=-1
;
; ・書式 lsvimsel lvshwnd,nIndex,nflag
; ・引数 lvshwnd (int) : Createlstviewで作成したハ...
; nIndex (int) : 0〜(0) 項目のインデックス...
; nflag (int) : -1〜(3)61440 (通常は3を指...
;
; nflag
; -------------------------------------------...
; -1 0
; 0 LVIS_FOCUSED|...
; LVIS_FOCUSED 1
; LVIS_SELECTED 2
; LVIS_CUT 4
; LVIS_DROPHILITED 8
; LVIS_OVERLAYMASK 3840
; LVIS_STATEIMAGEMASK 61440
;
; ・タイプ モジュール命令
;
;-- (NOTE) ----------------------------------------------...
;
; (使用例)
; lsvimsel lvshwnd,2,3
;********************************************************...
lvshwnd = prm1 : if lvshwnd==0 : return -1
nIndex = prm2 : if nIndex<=0 : nIndex=0
nflag = prm3 : if nflag<0 : nflag=3
if nflag=-1 : nflag=0
if nflag==0 : nflag=3
#undef LVIF_STATE
#define LVIF_STATE $00000008
;LVITEM構造体
dim tim,9
tim(0) = LVIF_STATE ;mask
tim(1) = nIndex ;iItem
tim(2) = 0 ;iSubItem
tim(3) = nflag ;state
tim(4) = $ffffffff ;stateMask
SendMessage lvshwnd,LVM_SETITEMA,0,varptr(tim)
SetFocus lvshwnd
return 0
#deffunc lsvcolumorder int prm1,array prm2,int prm3
;********************************************************...
; リストビューコントロールのカラムの並び順を設定 (lsvco...
;
; 戻り値 : 成功 stat=0, 失敗 stat=-1
;
; ※この命令は、拡張スタイルで LVS_EX_HEADERDRAGDROP が...
;
; ・書式 lsvcolumorder lvshwnd,Columarray,Columnum
; ・引数 lvshwnd (int) : Createlstviewで作成し...
; Columarray (array) : 設定するカラム順序を...
; 例 : Columarray=3,2,0,1
; Columnum (int) : カラムの数
; ・タイプ モジュール命令
;
;-- (NOTE) ----------------------------------------------...
;
; (使用例)
; Columarray=3,2,0,1
; lsvcolumorder lvshwnd,Columarray,4
;********************************************************...
lvshwnd = prm1 : if lvshwnd==0 : return -1
Columnum = prm3 : if Columnum<=0 : Columnum=0
OrderArray = prm2
SendMessage lvshwnd,LVM_SETCOLUMNORDERARRAY,Columnum,var...
return 0
#deffunc lsvgetclmwidth int prm1,int prm2
;********************************************************...
; リストビューコントロールのカラムの幅を取得 (lsvgetclm...
;
; 戻り値 : カラム幅 stat=ColomuWidth, 失敗 stat=-1
;
; ・書式 lsvgetclmwidth lvshwnd,nColomu
; ・引数 lvshwnd (int) : Createlstviewで作成したハ...
; nColomu (int) : 0〜(0) カラム幅を取得する...
; ・タイプ モジュール命令
;
;-- (NOTE) ----------------------------------------------...
;
; (使用例)
; lsvgetclmwidth lvshwnd,2 : ColomuWidth=stat : mes Col...
;********************************************************...
lvshwnd = prm1 : if lvshwnd==0 : return -1
nColomu = prm2 : if nColomu<=0 : nColomu=0
SendMessage lvshwnd,LVM_GETCOLUMNWIDTH,nColomu,0
return stat
#deffunc lsvsetclmwidth int prm1,int prm2,int prm3
;********************************************************...
; リストビューコントロールのカラムの幅を設定 (lsvsetclm...
;
; 戻り値 : 成功 stat=0, 失敗 stat=-1
;
; ・書式 lsvsetclmwidth lvshwnd,nColomu,nColwid
; ・引数 lvshwnd (int) : Createlstviewで作成したハ...
; nColomu (int) : 0〜(0) カラム幅を設定す...
; nColwid (int) : 0〜(100) カラムの幅(const...
; ・タイプ モジュール命令
;
;-- (NOTE) ----------------------------------------------...
;
; (使用例)
; lsvsetclmwidth lvshwnd,2,70
;********************************************************...
lvshwnd = prm1 : if lvshwnd==0 : return -1
nColomu = prm2 : if nColomu<=0 : nColomu=0
lvAUTOSIZE=0
nColwid = prm3 : if nColwid<0 : nColwid=-nColwid :lvAUT...
;nColwidに直接、下記の値を設定することもできる。
;#define LVSCW_AUTOSIZE $FFFFFFFF アイテム...
;#define LVSCW_AUTOSIZE_USEHEADER $FFFFFFFE ヘッダの...
if lvAUTOSIZE=1 {
SendMessage lvshwnd,LVM_SETCOLUMNWIDTH,nColomu,$FFFFFFFF
SendMessage lvshwnd,LVM_GETCOLUMNWIDTH,nColomu,0
if nColwid < stat :return 0
}
SendMessage lvshwnd,LVM_SETCOLUMNWIDTH,nColomu,nColwid
return 0
#undef ICC_LISTVIEW_CLASSES
#undef LVIS_STATEIMAGEMASK
#undef LVIF_STATE
#undef LVIF_TEXT
#global
#endif
#endif
;--------------------------------------------------------...
}}
#comment
ページ名: