windows窗体控件之listview列表视图

时间:2024-03-07 15:21:54
 
1.添加标题
winform.listview.gridLines=true;//显示列表线,也可在属性表设置
winform.listview.insertColumn("列标题",列宽,位置,样式)
winform.listview.insertColumn("标题2",列宽,位置,样式)//后加的在前面(若不注明位置)
 
winform.listview.insertColumn("第一列", 40, 1);
winform.listview.insertColumn("第二列", 40, 2);
 
2.添加列表项
 
winform.listview.addItem()//先增加一行才能增加下面的内容
winfrom.listview.setItemText("内容",1,1)//(内容,第一行,第一列)
 
或直接添加行内容
 
winform.listview.addItem("内容",位置)//位置可省略,默认count值
 
 
3.添加checkbox
winform.listview.setExtended(0x4/*_LVS_EX_CHECKBOXES*/);//设置CHECKBOXES
 
检索项的选中状态
winform.listview.getChecked(1)//1是索引号,返回指定索引项是否选中
winform.listview.setChecked(1)//选定指定索引项
winform.listview.setChecked(1,false)//取消选中
 
 
 
 

 
 
namespace win.ui.ctrl; 
import win.ui.ctrl.metaProperty;//导入控件属性元表支持
import win.ui.ctrl.common;
 
//_LVM_FIRST =@0x1000/*_LVM_FIRST*/
//_LVM_SETEXTENDEDLISTVIEWSTYLE = @4150/*_LVM_SETEXTENDEDLISTVIEWSTYLE*/
class listview{
    ctor(parent,tvalue){ 
    if(tvalue){
    tvalue.cls = "SysListView32"; 
    //tvalue.style |= 3/*_LVS_LIST*/ | 0x4000 /*_LVS_NOCOLUMNHEADER*/
    if(tvalue.edge)   
tvalue.exstyle |= 0x200/*_WS_EX_CLIENTEDGE*/;  
 
    select(tvalue.mode){
case "icon" 
tvalue.style |= 0x0/*_LVS_ICON*/
case "list"  
tvalue.style |= 0x3/*_LVS_LIST*/
case "smallicon" 
tvalue.style |= 0x2/*_LVS_SMALLICON*/            
else {
tvalue.style |= 0x1/*_LVS_REPORT*/
}
 
if(tvalue.hscroll)
tvalue.style |= 0x800/*_LVS_ALIGNLEFT*/ 
if(tvalue.vscroll)
tvalue.style |= 0x0/*_LVS_ALIGNTOP*/
 
if(tvalue.msel===false)
    tvalue.style |= 0x4/*_LVS_SINGLESEL*/
   
    if(tvalue.asel===null || tvalue.asel ) 
    tvalue.style |= 0x8/*_LVS_SHOWSELALWAYS*/
}  
    }
    oncreate = function(){ 
    } 
    @metaProperty;
}
 
 
 
namespace listview{ 
 
LVCOLUMN = class { /* 列 */
INT mask;
int fmt; 
int cx; 
string pszText; 
int cchTextMax; 
int iSubItem; 
int iImage;
int iOrder;
}
LVITEM = class { /* 项 */
INT mask; 
int iItem; 
int iSubItem; 
INT state; 
INT stateMask; 
string pszText; 
int cchTextMax; 
int iImage; 
int lParam;
int iIndent;
int iGroupId;
INT cColumns;
struct puColumns = ::POINT();
}
 
LVTILEVIEWINFO = class {
INT cbSize = 40;
INT dwMask;
INT dwFlags;
struct  sizeTile = ::SIZE();
int   cLines;
struct  rcLabelMargin = ::RECT();
}
 
metaProperty = ..win.ui.ctrl.metaProperty( 
 
count = {
_get = function(){  
return ::SendMessage(owner.hwnd, 0x1004/*_LVM_GETITEMCOUNT*/ )  
};
setTileViewInfo = function(inf){
if(! inf[["rcLabelMargin"]])
error("参数不是合法的LVTILEVIEWINFO()结构体",2)
 
::SendMessageByStruct(owner.hwnd,0x10A2/*_LVM_SETTILEVIEWINFO*/,0,inf);
}
getTileViewInfo = function(){
var inf = LVTILEVIEWINFO();
::SendMessageByStruct(owner.hwnd,0x10A3/*_LVM_GETTILEVIEWINFO*/,0,inf);
return inf;
}  
editable ={
_get = function(){
return  ..win.getStyle(owner[["hwnd"]],0x200/*_LVS_EDITLABELS*/ ) 
}
_set = function(v){
if(v)
owner.modifyStyle(,0x200/*_LVS_EDITLABELS*/)
else
owner.modifyStyle(0x200/*_LVS_EDITLABELS*/)
}
insertColumn = function (text /* 文本 */,width /* 列宽 */, ind = 1 /* 插入位置 */,fmt){
var col = LVCOLUMN();
col.mask = 0x4/*_LVCF_TEXT*/ | 0x8/*_LVCF_SUBITEM*/; 
col.pszText = text;
 
if(width){
col.mask |= 0x2/*_LVCF_WIDTH*/ 
col.cx = width;
}
if(fmt){
col.mask |= 0x1/*_LVCF_FMT*/
col.fmt = fmt;
}
return ::SendMessageByStruct(owner.hwnd, 0x101B/*_LVM_INSERTCOLUMNA*/,ind-1, col);
addItem = function(text, ind, image = -1, state = -1, indent = 0, lparam = 0) {
ind := owner.count + 1;
 
var item = LVITEM();
item.mask = 0x1/*_LVIF_TEXT*/ | 0x4/*_LVIF_PARAM*/ | 0x2/*_LVIF_IMAGE*/ | 0x8/*_LVIF_STATE*/ | 0x10/*_LVIF_INDENT*/ | 0x200/*_LVIF_COLUMNS*/;
item.iItem = ind-1;
item.iSubItem = 0; 
item.pszText = text;
item.iImage = image;
item.state = (state + 1) * 4096;
item.stateMask = 0xF000/*_LVIS_STATEIMAGEMASK*/ | 0x8/*_LVS_SHOWSELALWAYS*/;
item.iIndent = indent;
item.lParam = lparam;
return ::SendMessageByStruct(owner.hwnd, 0x1007/*_LVM_INSERTITEM*/, 0, item) + 1;
}
delItem = function(ind){
ind := owner.count;
return ::SendMessageInt(owner.hwnd, 0x1008/*_LVM_DELETEITEM*/,ind-1,0); 
}
clear = function(){
return ::SendMessage(owner.hwnd, 0x1009/*_LVM_DELETEALLITEMS*/); 
setItemText = function (text,row,col=1 ) {
var item = LVITEM();
item.mask = 0x1/*_LVIF_TEXT*/;
item.iSubItem = col-1;
item.pszText = text;
return ::SendMessageByStruct(owner.hwnd, 0x102E/*_LVM_SETITEMTEXT*/, row-1, item);
}
getItemText = function ( row,col=1,len=100 ) {
var item = LVITEM();
item.mask = 0x1/*_LVIF_TEXT*/;
item.iSubItem = col-1;
item.pszText = ..raw.malloc(len);
item.cchTextMax = len
var len = ::SendMessageByStruct(owner.hwnd, 0x102D/*_LVM_GETITEMTEXT*/, row-1, item); 
return ..string.left( item.pszText ,len);
}
items = {
_get = function(){  
tab = {}; 
for(i=1;owner.count )
                ..table.push(tab,owner.getItemText(i)) 
return tab;
}
_set = function( v ){ 
owner.clear()
    for(i=1;#v )  
owner.addItem(v[i])  
}
setItemPos = function ( ind,x,y ) { 
return ::SendMessageInt(owner.hwnd,0x100F/*_LVM_SETITEMPOSITION*/,ind-1,y*65536+x);  
}  
setItemState = function(row,state=0,mask){
var item = LVITEM();
item.mask = 0x8/*_LVIF_STATE*/; 
item.stateMask = mask===null?state:mask;
item.state = state
return ::SendMessageByStruct(owner.hwnd, 0x102B/*_LVM_SETITEMSTATE*/, row-1, item); 
}
getItemState = function(row,mask=0){
return ::SendMessageInt(owner.hwnd, 0x102c/*LVM_GETITEMSTATE*/, row-1,mask)  
}
/** 保证显示某一 item **/
ensureVisible = function (row) {
::SendMessageInt(owner.hwnd, 0x1013/*_LVM_ENSUREVISIBLE*/, (row : owner.selIndex) - 1, 0);
}
 
/** 选中选择框 **/ 
setSelected = function (row, selected=true) {
return owner.setItemState(row,selected ? 0x2/*_LVIS_SELECTED*/ : 0,0x2/*_LVIS_SELECTED*/ ); 
getSelected = function(row){
return owner.getItemState(row,0x2/*_LVIS_SELECTED*/ ) == 0x2/*_LVIS_SELECTED*/ 
getChecked = function(i){
    return ( owner.getItemState(i,0xF000/*LVIS_STATEIMAGEMASK*/) >> 12 ) != 1;
}
setChecked = function(i,v=true){ 
return owner.setItemState(i,( (v)?2:1 )<<12 ,0xF000/*LVIS_STATEIMAGEMASK*/) ;
}
selIndex = {
_get = function(){  
return ::SendMessageInt(owner.hwnd, 0x100C/*_LVM_GETNEXTITEM*/, -1, 0x1/*_LVNI_FOCUSED*/) + 1
}
_set = function( v ){
return owner.setItemState( v,0x1/*_LVNI_FOCUSED*/)
}
}; 
setExtended = function(ex,v=true){
return ::SendMessageInt(owner.hwnd, 4150/*_LVM_SETEXTENDEDLISTVIEWSTYLE*/,ex,v?ex:0);
}
getExtended = function(ex=~0){
return ::SendMessage(owner.hwnd, 0x1037/*_LVM_GETEXTENDEDLISTVIEWSTYLE*/) & ex;
gridLines = { 
/**
_get = function(){
return owner.getExtended(0x1/*_LVS_EX_GRIDLINES*/)
**/
_set = function( v ){  
owner.setExtended(0x1/*_LVS_EX_GRIDLINES*/,v)
}
};
fullRow = {
/**
_get = function(){
return owner.getExtended(0x20/*_LVS_EX_FULLROWSELECT*/)
**/
_set = function( v ){  
owner.setExtended(0x20/*_LVS_EX_FULLROWSELECT*/,v)
}
};
)
 
}
 
 

/**intellisense()
!listview.setItemPos(__/*项索引*/,x,y) = 设置图标项坐标
!listview.count = 项目总数
!listview.insertColumn(.(列名,列宽,位置,样式) = 除第一个参数以外,其他参数都可以省略\n样式使用_LVCFMT_前缀的常量指定,例如_LVCFMT_LEFT为文本左对齐
!listview.clear() = 清空所有项
!listview.addItem(.(标题,位置) = 位置参数可省略,默认为count值\n返回新增项行号
!listview.setItemText(.(文本,行,列) = 设置项文本
!listview.getItemText(.(行,列,缓冲区长度) = 列默认值为1,缓冲区最大字符数默认为100
!listview.setSelected(__/*项索引*/) = 选中项
!listview.setSelected(__/*项索引*/,false) = 取消选中项
!listview.getSelected(__/*项索引*/) = 指定项是否选中状态
!listview.getChecked(__) = 返回指定索引项是否选中
!listview.setChecked(__) = 选定指定索引项
!listview.setItemState(.(项索引,状态位,掩码) = 设置状态,参数三如果省略则使用参数二的值.
!listview.getItemState(.(项索引,状掩码 ) = 读取状态值
!listview.selIndex = 当前选定项索引
!listview.fullRow = 是否选中整行
!listview.hwnd = 控件句柄
!listview.id = 控件ID
!listview.parent = 父窗口
!listview.parent.hwnd = 父窗口句柄
!listview.disabled = 控件ID
!listview.left = 左侧坐标
!listview.right = 右侧坐标
!listview.top = 顶部坐标
!listview.bottom = 底部坐标 
!listview.redraw() = 刷新
!listview.show(true__) = 显示控件
!listview.rect = 控件区块位置(::RECT结构体)
!listview.clientRect =  控件客户区块位置(::RECT结构体)
!listview.font = 控件字体(::LOGFONT结构体)
!listview.clientRect =  获取控件客户区块位置(::RECT结构体)
!listview.theme = 外观主题,例如\nwinform.button.theme = "Explorer"\nwinform.button.theme = false
!listview.delItem(__) = 参数为数值,移除指定索引的项目
!listview.items = 列表项集合(第一列)\ntable对象
!listview.editable = 是否允许编辑项文本 
!listview.modifyStyle(.(remove,add) = 如果指定第三个参数,则使用此参数调用::SetWidnowPos 
!listview.modifyStyleEx(.(remove,add) = 如果指定第三个参数,则使用此参数调用::SetWidnowPos
!listview.capture = 是否捕获全局鼠标消自息
!listview.close() = 关闭控件窗口
!listview.setExtended(_LVS_EX__) = 启用树视图指定扩展样式
!listview.setExtended(_LVS_EX__,false) = 取消树视图指定扩展样式
!listview.getExtended() = 获取树视图扩展样式
!listview.getExtended(_LVS_EX__) = 获取树视图指定扩展样式
!listview.gridLines = 是否显示网格线
!listview.setFocus() = 设置焦点 
!listview.setPos(.(x坐标,y坐标,宽,高,插入位置,参数) = 调整窗口位置或排序,所有参数可选\n同时指定x,y坐标则移动位置\n同时指定宽高则改变大小\n指定插入位置(句柄或_HWND前缀常量)则调整Z序
!listview.getPos() = 返回相对坐标,宽,高\nx,y,cx,cy=win.getPos(hwnd)
!listview.getTileViewInfo() = 返回排列显示相关属性
!listview.setTileViewInfo() = 设置排列显示相关属性
!listview.ensureVisible() = 保证显示选中项
!listview.ensureVisible(__) = 保证显示指定项
?win.ui.ctrl.listview  =!listview.
 
!tileviewinfo.dwMask = @.dwMask = _LVTVIM__ ;
!tileviewinfo.dwFlags = @.dwFlags = _LVTVIF__ ;
!tileviewinfo.sizeTile = !size.
!tileviewinfo.cLines = 行数
!tileviewinfo.rcLabelMargin = !rect.
?.getTileViewInfo = !tileviewinfo.
 
 
_LVTVIM_TILESIZE=@0x1/*_LVTVIM_TILESIZE*/
_LVTVIM_COLUMNS=@0x2/*_LVTVIM_COLUMNS*/
_LVTVIM_LABELMARGIN=@0x4/*_LVTVIM_LABELMARGIN*/
_LVTVIF_AUTOSIZE=@0x0/*_LVTVIF_AUTOSIZE*/
_LVTVIF_FIXEDWIDTH=@0x1/*_LVTVIF_FIXEDWIDTH*/
_LVTVIF_FIXEDHEIGHT=@0x2/*_LVTVIF_FIXEDHEIGHT*/
_LVTVIF_FIXEDSIZE=@0x3/*_LVTVIF_FIXEDSIZE*/
_LVTVIF_EXTENDED=@0x4/*_LVTVIF_EXTENDED*/
 
_LVS_ICON=@0x0/*_LVS_ICON*/
_LVS_REPORT=@0x1/*_LVS_REPORT*/
_LVS_SMALLICON=@0x2/*_LVS_SMALLICON*/
_LVS_LIST=@0x3/*_LVS_LIST*/
_LVS_TYPEMASK=@0x3/*_LVS_TYPEMASK*/
_LVS_SINGLESEL=@0x4/*_LVS_SINGLESEL*/
_LVS_SHOWSELALWAYS=@0x8/*_LVS_SHOWSELALWAYS*/
_LVS_SORTASCENDING=@0x10/*_LVS_SORTASCENDING*/
_LVS_SORTDESCENDING=@0x20/*_LVS_SORTDESCENDING*/
_LVS_SHAREIMAGELISTS=@0x40/*_LVS_SHAREIMAGELISTS*/
_LVS_NOLABELWRAP=@0x80/*_LVS_NOLABELWRAP*/
_LVS_AUTOARRANGE=@0x100/*_LVS_AUTOARRANGE*/
_LVS_EDITLABELS=@0x200/*_LVS_EDITLABELS*/
_LVS_OWNERDATA=@0x1000/*_LVS_OWNERDATA*/
_LVS_NOSCROLL=@0x2000/*_LVS_NOSCROLL*/
_LVS_TYPESTYLEMASK=@0xFC00/*_LVS_TYPESTYLEMASK*/
_LVS_ALIGNTOP=@0x0/*_LVS_ALIGNTOP*/
_LVS_ALIGNLEFT=@0x800/*_LVS_ALIGNLEFT*/
_LVS_ALIGNMASK=@0xC00/*_LVS_ALIGNMASK*/
_LVS_OWNERDRAWFIXED=@0x400/*_LVS_OWNERDRAWFIXED*/
_LVS_NOCOLUMNHEADER=@0x4000/*_LVS_NOCOLUMNHEADER*/
_LVS_NOSORTHEADER=@0x8000/*_LVS_NOSORTHEADER*/
_LVS_EX_GRIDLINES=@0x1/*_LVS_EX_GRIDLINES*/
_LVS_EX_SUBITEMIMAGES=@0x2/*_LVS_EX_SUBITEMIMAGES*/
_LVS_EX_CHECKBOXES=@0x4/*_LVS_EX_CHECKBOXES*/
_LVS_EX_TRACKSELECT=@0x8/*_LVS_EX_TRACKSELECT*/
_LVS_EX_HEADERDRAGDROP=@0x10/*_LVS_EX_HEADERDRAGDROP*/
_LVS_EX_FULLROWSELECT=@0x20/*_LVS_EX_FULLROWSELECT*/
_LVS_EX_ONECLICKACTIVATE=@0x40/*_LVS_EX_ONECLICKACTIVATE*/
_LVS_EX_TWOCLICKACTIVATE=@0x80/*_LVS_EX_TWOCLICKACTIVATE*/
_LVS_EX_FLATSB=@0x100/*_LVS_EX_FLATSB*/
_LVS_EX_REGIONAL=@0x200/*_LVS_EX_REGIONAL*/
_LVS_EX_INFOTIP=@0x400/*_LVS_EX_INFOTIP*/
_LVS_EX_UNDERLINEHOT=@0x800/*_LVS_EX_UNDERLINEHOT*/
_LVS_EX_UNDERLINECOLD=@0x1000/*_LVS_EX_UNDERLINECOLD*/
_LVS_EX_MULTIWORKAREAS=@0x2000/*_LVS_EX_MULTIWORKAREAS*/
_LVS_EX_LABELTIP=@0x4000/*_LVS_EX_LABELTIP*/
_LVS_EX_BORDERSELECT=@0x8000/*_LVS_EX_BORDERSELECT*/
_LVS_EX_DOUBLEBUFFER=@0x10000/*_LVS_EX_DOUBLEBUFFER*/
_LVS_EX_HIDELABELS=@0x20000/*_LVS_EX_HIDELABELS*/
_LVS_EX_SINGLEROW=@0x40000/*_LVS_EX_SINGLEROW*/
_LVS_EX_SNAPTOGRID=@0x80000/*_LVS_EX_SNAPTOGRID*/
_LVS_EX_SIMPLESELECT=@0x100000/*_LVS_EX_SIMPLESELECT*/
_LVS_EX_JUSTIFYCOLUMNS=@0x200000/*_LVS_EX_JUSTIFYCOLUMNS*/
_LVS_EX_TRANSPARENTBKGND=@0x400000/*_LVS_EX_TRANSPARENTBKGND*/
_LVS_EX_TRANSPARENTSHADOWTEXT=@0x800000/*_LVS_EX_TRANSPARENTSHADOWTEXT*/
_LVS_EX_AUTOAUTOARRANGE=@0x1000000/*_LVS_EX_AUTOAUTOARRANGE*/
_LVS_EX_HEADERINALLVIEWS=@0x2000000/*_LVS_EX_HEADERINALLVIEWS*/
_LVS_EX_AUTOCHECKSELECT=@0x8000000/*_LVS_EX_AUTOCHECKSELECT*/
_LVS_EX_AUTOSIZECOLUMNS=@0x10000000/*_LVS_EX_AUTOSIZECOLUMNS*/
_LVS_EX_COLUMNSNAPPOINTS=@0x40000000/*_LVS_EX_COLUMNSNAPPOINTS*/
_LVS_EX_COLUMNOVERFLOW=@0x80000000/*_LVS_EX_COLUMNOVERFLOW*/
 
_LVM_SETUNICODEFORMAT=@0x2005/*_LVM_SETUNICODEFORMAT*/
_LVM_GETUNICODEFORMAT=@0x2006/*_LVM_GETUNICODEFORMAT*/
_LVM_GETBKCOLOR=@0x1000/*_LVM_GETBKCOLOR*/
_LVM_SETBKCOLOR=@0x1001/*_LVM_SETBKCOLOR*/
_LVM_GETIMAGELIST=@0x1002/*_LVM_GETIMAGELIST*/
_LVM_SETIMAGELIST=@0x1003/*_LVM_SETIMAGELIST*/
_LVM_GETITEMCOUNT=@0x1004/*_LVM_GETITEMCOUNT*/
_LVM_GETITEM=@0x1005/*_LVM_GETITEM*/
_LVM_SETITEM=@0x1006/*_LVM_SETITEM*/
_LVM_INSERTITEM=@0x1007/*_LVM_INSERTITEM*/
_LVM_DELETEITEM=@0x1008/*_LVM_DELETEITEM*/
_LVM_DELETEALLITEMS=@0x1009/*_LVM_DELETEALLITEMS*/
_LVM_GETCALLBACKMASK=@0x100A/*_LVM_GETCALLBACKMASK*/
_LVM_SETCALLBACKMASK=@0x100B/*_LVM_SETCALLBACKMASK*/
_LVM_GETNEXTITEM=@0x100C/*_LVM_GETNEXTITEM*/
_LVM_FINDITEM=@0x100D/*_LVM_FINDITEM*/
_LVM_GETITEMRECT=@0x100E/*_LVM_GETITEMRECT*/
_LVM_SETITEMPOSITION=@0x100F/*_LVM_SETITEMPOSITION*/
_LVM_GETITEMPOSITION=@0x1010/*_LVM_GETITEMPOSITION*/
_LVM_GETSTRINGWIDTH=@0x1011/*_LVM_GETSTRINGWIDTH*/
_LVM_HITTEST=@0x1012/*_LVM_HITTEST*/
_LVM_ENSUREVISIBLE=@0x1013/*_LVM_ENSUREVISIBLE*/
_LVM_SCROLL=@0x1014/*_LVM_SCROLL*/
_LVM_REDRAWITEMS=@0x1015/*_LVM_REDRAWITEMS*/
_LVM_ARRANGE=@0x1016/*_LVM_ARRANGE*/
_LVM_EDITLABEL=@0x1017/*_LVM_EDITLABEL*/
_LVM_GETEDITCONTROL=@0x1018/*_LVM_GETEDITCONTROL*/
_LVM_GETCOLUMN=@0x1019/*_LVM_GETCOLUMN*/
_LVM_SETCOLUMN=@0x101A/*_LVM_SETCOLUMN*/
_LVM_INSERTCOLUMN=@0x101B/*_LVM_INSERTCOLUMNA*/
_LVM_DELETECOLUMN=@0x101C/*_LVM_DELETECOLUMN*/
_LVM_GETCOLUMNWIDTH=@0x101D/*_LVM_GETCOLUMNWIDTH*/
_LVM_SETCOLUMNWIDTH=@0x101E/*_LVM_SETCOLUMNWIDTH*/
_LVM_GETHEADER=@0x101F/*_LVM_GETHEADER*/
_LVM_CREATEDRAGIMAGE=@0x1021/*_LVM_CREATEDRAGIMAGE*/
_LVM_GETVIEWRECT=@0x1022/*_LVM_GETVIEWRECT*/
_LVM_GETTEXTCOLOR=@0x1023/*_LVM_GETTEXTCOLOR*/
_LVM_SETTEXTCOLOR=@0x1024/*_LVM_SETTEXTCOLOR*/
_LVM_GETTEXTBKCOLOR=@0x1025/*_LVM_GETTEXTBKCOLOR*/
_LVM_SETTEXTBKCOLOR=@0x1026/*_LVM_SETTEXTBKCOLOR*/
_LVM_GETTOPINDEX=@0x1027/*_LVM_GETTOPINDEX*/
_LVM_GETCOUNTPERPAGE=@0x1028/*_LVM_GETCOUNTPERPAGE*/
_LVM_GETORIGIN=@0x1029/*_LVM_GETORIGIN*/
_LVM_UPDATE=@0x102A/*_LVM_UPDATE*/
_LVM_SETITEMSTATE=@0x102B/*_LVM_SETITEMSTATE*/
_LVM_GETITEMSTATE=@0x102C/*_LVM_GETITEMSTATE*/
_LVM_GETITEMTEXT=@0x102D/*_LVM_GETITEMTEXT*/
_LVM_SETITEMTEXT=@0x102E/*_LVM_SETITEMTEXT*/
_LVM_SETITEMCOUNT=@0x102F/*_LVM_SETITEMCOUNT*/
_LVM_SORTITEMS=@0x1030/*_LVM_SORTITEMS*/
_LVM_SETITEMPOSITION32=@0x1031/*_LVM_SETITEMPOSITION32*/
_LVM_GETSELECTEDCOUNT=@0x1032/*_LVM_GETSELECTEDCOUNT*/
_LVM_GETITEMSPACING=@0x1033/*_LVM_GETITEMSPACING*/
_LVM_GETISEARCHSTRING=@0x1034/*_LVM_GETISEARCHSTRING*/
_LVM_SETICONSPACING=@0x1035/*_LVM_SETICONSPACING*/
_LVM_GETEXTENDEDLISTVIEWSTYLE=@0x1037/*_LVM_GETEXTENDEDLISTVIEWSTYLE*/
_LVM_GETSUBITEMRECT=@0x1038/*_LVM_GETSUBITEMRECT*/
_LVM_SUBITEMHITTEST=@0x1039/*_LVM_SUBITEMHITTEST*/
_LVM_SETCOLUMNORDERARRAY=@0x103A/*_LVM_SETCOLUMNORDERARRAY*/
_LVM_GETCOLUMNORDERARRAY=@0x103B/*_LVM_GETCOLUMNORDERARRAY*/
_LVM_SETHOTITEM=@0x103C/*_LVM_SETHOTITEM*/
_LVM_GETHOTITEM=@0x103D/*_LVM_GETHOTITEM*/
_LVM_SETHOTCURSOR=@0x103E/*_LVM_SETHOTCURSOR*/
_LVM_GETHOTCURSOR=@0x103F/*_LVM_GETHOTCURSOR*/
_LVM_APPROXIMATEVIEWRECT=@0x1040/*_LVM_APPROXIMATEVIEWRECT*/
_LVM_SETWORKAREAS=@0x1041/*_LVM_SETWORKAREAS*/
_LVM_GETWORKAREAS=@0x1046/*_LVM_GETWORKAREAS*/
_LVM_GETNUMBEROFWORKAREAS=@0x1049/*_LVM_GETNUMBEROFWORKAREAS*/
_LVM_GETSELECTIONMARK=@0x1042/*_LVM_GETSELECTIONMARK*/
_LVM_SETSELECTIONMARK=@0x1043/*_LVM_SETSELECTIONMARK*/
_LVM_SETHOVERTIME=@0x1047/*_LVM_SETHOVERTIME*/
_LVM_GETHOVERTIME=@0x1048/*_LVM_GETHOVERTIME*/
_LVM_SETTOOLTIPS=@0x104A/*_LVM_SETTOOLTIPS*/
_LVM_GETTOOLTIPS=@0x104E/*_LVM_GETTOOLTIPS*/
_LVM_SORTITEMSEX=@0x1051/*_LVM_SORTITEMSEX*/
_LVM_SETBKIMAGEA=@0x1044/*_LVM_SETBKIMAGEA*/
_LVM_GETBKIMAGEA=@0x1045/*_LVM_GETBKIMAGEA*/
_LVM_SETSELECTEDCOLUMN=@0x108C/*_LVM_SETSELECTEDCOLUMN*/
_LVM_SETVIEW=@0x108E/*_LVM_SETVIEW*/
_LVM_GETVIEW=@0x108F/*_LVM_GETVIEW*/
_LVM_INSERTGROUP=@0x1091/*_LVM_INSERTGROUP*/
_LVM_SETGROUPINFO=@0x1093/*_LVM_SETGROUPINFO*/
_LVM_GETGROUPINFO=@0x1095/*_LVM_GETGROUPINFO*/
_LVM_REMOVEGROUP=@0x1096/*_LVM_REMOVEGROUP*/
_LVM_MOVEGROUP=@0x1097/*_LVM_MOVEGROUP*/
_LVM_GETGROUPCOUNT=@0x1098/*_LVM_GETGROUPCOUNT*/
_LVM_GETGROUPINFOBYINDEX=@0x1099/*_LVM_GETGROUPINFOBYINDEX*/
_LVM_MOVEITEMTOGROUP=@0x109A/*_LVM_MOVEITEMTOGROUP*/
_LVM_GETGROUPRECT=@0x1062/*_LVM_GETGROUPRECT*/
_LVM_SETGROUPMETRICS=@0x109B/*_LVM_SETGROUPMETRICS*/
_LVM_GETGROUPMETRICS=@0x109C/*_LVM_GETGROUPMETRICS*/
_LVM_ENABLEGROUPVIEW=@0x109D/*_LVM_ENABLEGROUPVIEW*/
_LVM_SORTGROUPS=@0x109E/*_LVM_SORTGROUPS*/
_LVM_INSERTGROUPSORTED=@0x109F/*_LVM_INSERTGROUPSORTED*/
_LVM_REMOVEALLGROUPS=@0x10A0/*_LVM_REMOVEALLGROUPS*/
_LVM_HASGROUP=@0x10A1/*_LVM_HASGROUP*/
_LVM_GETGROUPSTATE=@0x105C/*_LVM_GETGROUPSTATE*/
_LVM_GETFOCUSEDGROUP=@0x105D/*_LVM_GETFOCUSEDGROUP*/
_LVM_SETTILEVIEWINFO=@0x10A2/*_LVM_SETTILEVIEWINFO*/
_LVM_GETTILEVIEWINFO=@0x10A3/*_LVM_GETTILEVIEWINFO*/
_LVM_SETTILEINFO=@0x10A4/*_LVM_SETTILEINFO*/
_LVM_GETTILEINFO=@0x10A5/*_LVM_GETTILEINFO*/
_LVM_SETINSERTMARK=@0x10A6/*_LVM_SETINSERTMARK*/
_LVM_GETINSERTMARK=@0x10A7/*_LVM_GETINSERTMARK*/
_LVM_INSERTMARKHITTEST=@0x10A8/*_LVM_INSERTMARKHITTEST*/
_LVM_GETINSERTMARKRECT=@0x10A9/*_LVM_GETINSERTMARKRECT*/
_LVM_SETINSERTMARKCOLOR=@0x10AA/*_LVM_SETINSERTMARKCOLOR*/
_LVM_GETINSERTMARKCOLOR=@0x10AB/*_LVM_GETINSERTMARKCOLOR*/
_LVM_SETINFOTIP=@0x10AD/*_LVM_SETINFOTIP*/
_LVM_GETSELECTEDCOLUMN=@0x10AE/*_LVM_GETSELECTEDCOLUMN*/
_LVM_ISGROUPVIEWENABLED=@0x10AF/*_LVM_ISGROUPVIEWENABLED*/
_LVM_GETOUTLINECOLOR=@0x10B0/*_LVM_GETOUTLINECOLOR*/
_LVM_SETOUTLINECOLOR=@0x10B1/*_LVM_SETOUTLINECOLOR*/
_LVM_CANCELEDITLABEL=@0x10B3/*_LVM_CANCELEDITLABEL*/
_LVM_MAPINDEXTOID=@0x10B4/*_LVM_MAPINDEXTOID*/
_LVM_MAPIDTOINDEX=@0x10B5/*_LVM_MAPIDTOINDEX*/
_LVM_ISITEMVISIBLE=@0x10B6/*_LVM_ISITEMVISIBLE*/
_LVM_GETEMPTYTEXT=@0x10CC/*_LVM_GETEMPTYTEXT*/
_LVM_GETFOOTERRECT=@0x10CD/*_LVM_GETFOOTERRECT*/
_LVM_GETFOOTERINFO=@0x10CE/*_LVM_GETFOOTERINFO*/
_LVM_GETFOOTERITEMRECT=@0x10CF/*_LVM_GETFOOTERITEMRECT*/
_LVM_GETFOOTERITEM=@0x10D0/*_LVM_GETFOOTERITEM*/
_LVM_GETITEMINDEXRECT=@0x10D1/*_LVM_GETITEMINDEXRECT*/
_LVM_SETITEMINDEXSTATE=@0x10D2/*_LVM_SETITEMINDEXSTATE*/
_LVM_GETNEXTITEMINDEX=@0x10D3/*_LVM_GETNEXTITEMINDEX*/
_LVM_SETBKIMAGE=@0x1044/*_LVM_SETBKIMAGE*/
_LVM_GETBKIMAGE=@0x1045/*_LVM_GETBKIMAGE*/
 
_LVCF_FMT=@0x1/*_LVCF_FMT*/
_LVCF_WIDTH=@0x2/*_LVCF_WIDTH*/
_LVCF_TEXT=@0x4/*_LVCF_TEXT*/
_LVCF_SUBITEM=@0x8/*_LVCF_SUBITEM*/
_LVCF_IMAGE=@0x10/*_LVCF_IMAGE*/
_LVCF_ORDER=@0x20/*_LVCF_ORDER*/
_LVCF_MINWIDTH=@0x40/*_LVCF_MINWIDTH*/
_LVCF_DEFAULTWIDTH=@0x80/*_LVCF_DEFAULTWIDTH*/
_LVCF_IDEALWIDTH=@0x100/*_LVCF_IDEALWIDTH*/
 
_LVCFMT_LEFT=@0x0/*_LVCFMT_LEFT*/
_LVCFMT_RIGHT=@0x1/*_LVCFMT_RIGHT*/
_LVCFMT_CENTER=@0x2/*_LVCFMT_CENTER*/
_LVCFMT_JUSTIFYMASK=@0x3/*_LVCFMT_JUSTIFYMASK*/
_LVCFMT_IMAGE=@0x800/*_LVCFMT_IMAGE*/
_LVCFMT_BITMAP_ON_RIGHT=@0x1000/*_LVCFMT_BITMAP_ON_RIGHT*/
_LVCFMT_COL_HAS_IMAGES=@0x8000/*_LVCFMT_COL_HAS_IMAGES*/
_LVCFMT_FIXED_WIDTH=@0x100/*_LVCFMT_FIXED_WIDTH*/
_LVCFMT_NO_DPI_SCALE=@0x40000/*_LVCFMT_NO_DPI_SCALE*/
_LVCFMT_FIXED_RATIO=@0x80000/*_LVCFMT_FIXED_RATIO*/
_LVCFMT_LINE_BREAK=@0x100000/*_LVCFMT_LINE_BREAK*/
_LVCFMT_FILL=@0x200000/*_LVCFMT_FILL*/
_LVCFMT_WRAP=@0x400000/*_LVCFMT_WRAP*/
_LVCFMT_NO_TITLE=@0x800000/*_LVCFMT_NO_TITLE*/
_LVCFMT_TILE_PLACEMENTMASK=@0x300000/*_LVCFMT_TILE_PLACEMENTMASK*/
_LVCFMT_SPLITBUTTON=@0x1000000/*_LVCFMT_SPLITBUTTON*/
 
_LVIF_TEXT=@0x1/*_LVIF_TEXT*/
_LVIF_IMAGE=@0x2/*_LVIF_IMAGE*/
_LVIF_PARAM=@0x4/*_LVIF_PARAM*/
_LVIF_STATE=@0x8/*_LVIF_STATE*/
_LVIF_INDENT=@0x10/*_LVIF_INDENT*/
_LVIF_NORECOMPUTE=@0x800/*_LVIF_NORECOMPUTE*/
_LVIF_GROUPID=@0x100/*_LVIF_GROUPID*/
_LVIF_COLUMNS=@0x200/*_LVIF_COLUMNS*/
_LVIF_COLFMT=@0x10000/*_LVIF_COLFMT*/
 
_LVIS_FOCUSED=@0x1/*_LVIS_FOCUSED*/
_LVIS_SELECTED=@0x2/*_LVIS_SELECTED*/
_LVIS_CUT=@0x4/*_LVIS_CUT*/
_LVIS_DROPHILITED=@0x8/*_LVIS_DROPHILITED*/
_LVIS_GLOW=@0x10/*_LVIS_GLOW*/
_LVIS_ACTIVATING=@0x20/*_LVIS_ACTIVATING*/
_LVIS_OVERLAYMASK=@0xF00/*_LVIS_OVERLAYMASK*/
_LVIS_STATEIMAGEMASK=@0xF000/*_LVIS_STATEIMAGEMASK*/
 
_LVNI_ALL=@0x0/*_LVNI_ALL*/
_LVNI_FOCUSED=@0x1/*_LVNI_FOCUSED*/
_LVNI_SELECTED=@0x2/*_LVNI_SELECTED*/
_LVNI_CUT=@0x4/*_LVNI_CUT*/
_LVNI_DROPHILITED=@0x8/*_LVNI_DROPHILITED*/
_LVNI_STATEMASK=@0xF/*_LVNI_STATEMASK*/
_LVNI_VISIBLEORDER=@0x10/*_LVNI_VISIBLEORDER*/
_LVNI_PREVIOUS=@0x20/*_LVNI_PREVIOUS*/
_LVNI_VISIBLEONLY=@0x40/*_LVNI_VISIBLEONLY*/
_LVNI_SAMEGROUPONLY=@0x80/*_LVNI_SAMEGROUPONLY*/
_LVNI_ABOVE=@0x100/*_LVNI_ABOVE*/
_LVNI_BELOW=@0x200/*_LVNI_BELOW*/
_LVNI_TOLEFT=@0x400/*_LVNI_TOLEFT*/
_LVNI_TORIGHT=@0x800/*_LVNI_TORIGHT*/
_LVNI_DIRECTIONMASK=@0xF00/*_LVNI_DIRECTIONMASK*/
end intellisense**/
 
 /**intellisense()
_LVN_FIRST=@0xFFFFFF9C/*_LVN_FIRST*/
_LVN_ITEMCHANGING=@0xFFFFFF9C/*_LVN_ITEMCHANGING*/
_LVN_ITEMCHANGED=@0xFFFFFF9B/*_LVN_ITEMCHANGED*/
_LVN_INSERTITEM=@0xFFFFFF9A/*_LVN_INSERTITEM*/
_LVN_DELETEITEM=@0xFFFFFF99/*_LVN_DELETEITEM*/
_LVN_DELETEALLITEMS=@0xFFFFFF98/*_LVN_DELETEALLITEMS*/
_LVN_BEGINLABELEDITA=@0xFFFFFF97/*_LVN_BEGINLABELEDITA*/
_LVN_BEGINLABELEDITW=@0xFFFFFF51/*_LVN_BEGINLABELEDITW*/
_LVN_ENDLABELEDITA=@0xFFFFFF96/*_LVN_ENDLABELEDITA*/
_LVN_ENDLABELEDITW=@0xFFFFFF50/*_LVN_ENDLABELEDITW*/
_LVN_COLUMNCLICK=@0xFFFFFF94/*_LVN_COLUMNCLICK*/
_LVN_BEGINDRAG=@0xFFFFFF93/*_LVN_BEGINDRAG*/
_LVN_BEGINRDRAG=@0xFFFFFF91/*_LVN_BEGINRDRAG*/
_LVN_ODCACHEHINT=@0xFFFFFF8F/*_LVN_ODCACHEHINT*/
_LVN_ODFINDITEMA=@0xFFFFFF68/*_LVN_ODFINDITEMA*/
_LVN_ODFINDITEMW=@0xFFFFFF4D/*_LVN_ODFINDITEMW*/
_LVN_ITEMACTIVATE=@0xFFFFFF8E/*_LVN_ITEMACTIVATE*/
_LVN_ODSTATECHANGED=@0xFFFFFF8D/*_LVN_ODSTATECHANGED*/
_LVN_ODFINDITEM=@0xFFFFFF68/*_LVN_ODFINDITEM*/
_LVN_HOTTRACK=@0xFFFFFF87/*_LVN_HOTTRACK*/
_LVN_GETDISPINFOA=@0xFFFFFF6A/*_LVN_GETDISPINFOA*/
_LVN_GETDISPINFOW=@0xFFFFFF4F/*_LVN_GETDISPINFOW*/
_LVN_SETDISPINFOA=@0xFFFFFF69/*_LVN_SETDISPINFOA*/
_LVN_SETDISPINFOW=@0xFFFFFF4E/*_LVN_SETDISPINFOW*/
_LVN_BEGINLABELEDIT=@0xFFFFFF97/*_LVN_BEGINLABELEDIT*/
_LVN_ENDLABELEDIT=@0xFFFFFF96/*_LVN_ENDLABELEDIT*/
_LVN_GETDISPINFO=@0xFFFFFF6A/*_LVN_GETDISPINFO*/
_LVN_SETDISPINFO=@0xFFFFFF69/*_LVN_SETDISPINFO*/
end intellisense**/