• windows窗体控件之listview列表视图


     
    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(.(列名,列宽,位置,样式) = 除第一个参数以外,其他参数都可以省略 样式使用_LVCFMT_前缀的常量指定,例如_LVCFMT_LEFT为文本左对齐
    !listview.clear() = 清空所有项
    !listview.addItem(.(标题,位置) = 位置参数可省略,默认为count值 返回新增项行号
    !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 = 外观主题,例如 winform.button.theme = "Explorer" winform.button.theme = false
    !listview.delItem(__) = 参数为数值,移除指定索引的项目
    !listview.items = 列表项集合(第一列) table对象
    !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坐标,宽,高,插入位置,参数) = 调整窗口位置或排序,所有参数可选 同时指定x,y坐标则移动位置 同时指定宽高则改变大小 指定插入位置(句柄或_HWND前缀常量)则调整Z序
    !listview.getPos() = 返回相对坐标,宽,高 x,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**/
    乐于分享
  • 相关阅读:
    程序员的一天
    美团点评云真机平台实践
    第5波:5本《自动化平台测试开发》+5本《软件自动化测试开发》又双叒叕来送书了...
    软件测试:管理篇
    软件测试:用例篇
    转载ASP.NET MVC 和ASP.NET Web Form简单区别
    转载ASP.NET 状态管理Application,Session,Cookie和ViewState用法
    转载 asp.net中ViewState的用法详解
    在ASP.NET中如何运行后台任务
    转载 .net中的dll.refresh文件和pdb文件
  • 原文地址:https://www.cnblogs.com/aersliing/p/4056980.html
Copyright © 2020-2023  润新知