给listview每行加上复选框

By admin at 2017-11-19 • 0人收藏 • 788人看过

listview加上复选框之后,如果只是两列,那么就是checkview了吧.

于是,去checkview里查看它实现的代码.

//checklist 复选列表框
import win.ui.ctrl.listview;
namespace win.ui.ctrl; 
var listview = ..win.ui.ctrl.listview;

class checklist{
    ctor(parent,tParam){ 
    	if( tParam ){
    		tParam.cls = "SysListView32"; 
    		tParam.style |= 3/*_LVS_LIST*/ | 0x4000 /*_LVS_NOCOLUMNHEADER*/  
    		if(tParam.edge)   
				tParam.exstyle |= 0x200/*_WS_EX_CLIENTEDGE*/; 
   		} 
    }
    onCreate = function(){  
    	this.setExtended(0x4/*_LVS_EX_CHECKBOXES*/)
    } 

    @_metaProperty;
}
checklist._metaProperty = listview._metaProperty;
 
/**intellisense()
?win.ui.ctrl.checklist  =!listview.
win.ui.ctrl.checklist() = 复选列表框\n!listview.
end intellisense**/

以上就是在listview基础上实现的checkview的程序,里面还是listview的属性,只是在

 onCreate = function(){  
    	this.setExtended(0x4/*_LVS_EX_CHECKBOXES*/)
    }

增加了这个属性,那么我们就可以以此类推.实现listview每行增加一个多选框

import win.ui;
/*DSG{{*/
var winform = win.form(text="aardio Form";right=349;bottom=266;parent=...)
winform.add(
button={cls="button";text="全部勾选";left=133;top=213;right=208;bottom=244;z=3};
listview={cls="listview";left=37;top=36;right=303;bottom=207;asel=false;bgcolor=16777215;dl=1;dr=1;edge=1;font=LOGFONT(name='SimSun');fullRow=1;gridLines=1;msel=1;z=1};
static={cls="static";text="请使用鼠标左键、鼠标右键点击列表项";left=68;top=11;right=303;bottom=29;transparent=1;z=2}
)
/*}}*/

winform.button.oncommand = function(id,event){
        if winform.button.text="全部勾选" {
            winform.button.text="全部取消"
            for (i=1;winform.listview.count;1) {
                winform.listview.setChecked(i)
            }
        }else{
            winform.button.text="全部勾选"
            for (i=1;winform.listview.count;1) {
                winform.listview.setChecked(i,false)
            }
        }
}
winform.listview.onnotify = function(id,code,ptr){  
    select(code) { 
        case 0xFFFFFFFE/*_NM_CLICK*/{
            var nm = winform.listview.getNotifyMessage(code,ptr)  
            if( ! nm.iItem  ) return ;  
            winform.listview.setChecked(nm.iItem,!winform.listview.getChecked(nm.iItem) ) 
        }
    }
}
//自适应列宽度 
winform.listview.adjust = function(cx,cy){
    winform.listview.fillParent(/*列序号*/);
} 
winform.listview.insertColumn("姓  名",80,,0x2/*_LVCFMT_CENTER*/) 
winform.listview.insertColumn("电话号码",300,,0x2/*_LVCFMT_CENTER*/) 
winform.listview.setExtended(0x4/*_LVS_EX_CHECKBOXES*/);
winform.listview.addItem( { 
        text={"王永工";"13176768888"} 
} )
winform.listview.addItem("")
winform.listview.addItem( {
        text={"冯有祥";"第三行内容"} 
} )
winform.listview.setItemText( {
        "刘光明";"第二行内容"
},2);
winform.show() 
win.loopMessage();

以上代码中主要看

winform.listview.setExtended(0x4/*_LVS_EX_CHECKBOXES*/);

这句就可以实现添加复选框.

blob.png


可是??

表头中怎么实现复选框啊??

1 个回复 | 最后更新于 2017-11-19
2017-11-19   #1

利用htmlayout实现listview的icon功能:

引用自:http://bbs.aardio.com/forum.php?mod=viewthread&tid=12662&highlight=listview

import win.ui;
/*DSG{{*/
var winform = win.form( bottom=399;text="。。。。。";right=599 )
/*}}*/

import web.layout;
import web.layout.behavior.shellIcon;
wbLayout = web.layout( winform );
 
import gdip.graphics;
import gdip.family;
import gdip.solidBrush;
import gdip.stringformat;
namespace web.layout.behavior.ellipsis{ 

    onDrawContent = function(ltOwner,hdc,rc){ 
        var graphics = ..gdip.graphics(hdc);
        graphics.textRenderingHint = 3/*_GdipTextRenderingHintAntiAliasGridFit*/

        var strformat = ..gdip.stringformat();  
        strformat.align = 1/*_GdipStringAlignmentCenter*/ ;
        strformat.lineAlign = 1/*_GdipStringAlignmentCenter*/ ;
        strformat.trimming = 4/*_GdipStringTrimmingEllipsisWord*/ ; 
   
        var brush = ..gdip.solidBrush( ::GetTextColor(hdc) | 0xFF000000 );  
        var family = ..gdip.family("MS Shell Dlg"); 
        var font = family.createFont(  15,0/*_GdipFontStyleRegular*/ )

        graphics.drawString( ltOwner.innerText,font,rc.float(), strformat,brush);
 
        brush.delete();
        strformat.delete();
        font.delete();
        family.delete();
        graphics.delete()
        return true;
    }
}
 
wbLayout.html = /**
<body>
<widget type="select" name="iconview" id="fileList"  multiple="multiple">
    <option><img  class='shell-icon' filename='.txt' /><div>ABC ADADASD SHENG MING.txt</div></option>
    <option><img  class='shell-icon' filename='.jpg' /><div>这是张图片图片图片图片图片图片图片.jpg</div></option>
    <option><img  class='shell-icon' filename='.txt' /><div>ABC ADADASD SHENG MING.txt</div></option>
    <option><img  class='shell-icon' filename='.jpg' /><div>这是张图片图片图片图片图片图片图片.jpg</div></option>
<option><img  class='shell-icon' filename='.txt' /><div>ABC ADADASD SHENG MING.txt</div></option>
    <option><img  class='shell-icon' filename='.jpg' /><div>这是张图片图片图片图片图片图片图片.jpg</div></option>
<option><img  class='shell-icon' filename='.txt' /><div>ABC ADADASD SHENG MING.txt</div></option>
    <option><img  class='shell-icon' filename='.jpg' /><div>这是张图片图片图片图片图片图片图片.jpg</div></option>
<option><img  class='shell-icon' filename='.txt' /><div>ABC ADADASD SHENG MING.txt</div></option>
    <option><img  class='shell-icon' filename='.jpg' /><div>这是张图片图片图片图片图片图片图片.jpg</div></option>
<option><img  class='shell-icon' filename='.txt' /><div>ABC ADADASD SHENG MING.txt</div></option>
    <option><img  class='shell-icon' filename='.jpg' /><div>这是张图片图片图片图片图片图片图片.jpg</div></option>
<option><img  class='shell-icon' filename='.txt' /><div>ABC ADADASD SHENG MING.txt</div></option>
    <option><img  class='shell-icon' filename='.jpg' /><div>这是张图片图片图片图片图片图片图片.jpg</div></option>

</widget>
</body>

**/

wbLayout.css = /**
#fileList{width:100%%;height:100%%;flow:h-flow;}
img.shell-icon 
{
    width:64px;
    height:64px;
    behavior: shellIcon;
}
option{width:100px;text-align:center}
option > div
{
    display:block;
    width:100px;
    height:36px;
    overflow-x:hidden;
    behavior:ellipsis; 
}
**/


winform.show() 
win.loopMessage();

blob.png

登录后方可回帖

登 录
信息栏
本站永久域名:HtmLayout.Cn
纯私人站,当笔记本用的,学到哪写到哪,目前正在学aardio+halcon机器视觉.
Sciter中文在线文档Sciter在线学习文档
本 站 主 站:Stm32cube中文网
Aardio 官方站:Aardio官方
Aardio最新功能:Aardio官方更新日志
aardio在线手册Aardio在线手册
C大Aardio论坛:Aar爱好者论坛
简码教程网:简码编程
AARDIO语言QQ群:70517368
赞助商:才仁机械
下载站:非凡软件站
Loading...