//listview自绘
import win.ui;
/*DSG{{*/
var winform = win.form(text="listview custom draw";right=627;bottom=294;bgcolor=128)
winform.add(
listview={cls="listview";left=12;top=13;right=614;bottom=287;bgcolor=128;dl=1;dr=1;fullRow=1;z=1}
)
/*}}*/

//移除列标题
winform.listview.modifyStyle(,0x4000/*_LVS_NOCOLUMNHEADER*/)
winform.listview.insertColumn("列标题3",100) 
winform.listview.insertColumn("列标题2",100) 
winform.listview.insertColumn("列标题1",100) 

winform.listview.addItem( { 
	text={"第一行内容";"1";"1,2"} 
} )
winform.listview.addItem( { 
	text={"第二行内容";"2";"2,2"} 
} )
winform.listview.addItem( { 
	text={"第三行内容";"3";"3,2"} 
} )

winform.listview.adjust = function(cx,cy){
    winform.listview.fillParent(3);
}

//自绘
winform.listview.onnotify = function(id,code,ptr){ 
	if( code == 0xFFFFFFF4/*_NM_CUSTOMDRAW*/ ){
		var lvcd = winform.listview.getNotifyCustomDraw(code,ptr);
		if( lvcd.nmcd.dwDrawStage == 0x10001/*_CDDS_ITEMPREPAINT*/)
			return 0x20/*_CDRF_NOTIFYSUBITEMDRAW*/
		elseif( lvcd.nmcd.dwDrawStage == 1/*_CDDS_PREPAINT*/ ){
			return 0x20/*_CDRF_NOTIFYITEMDRAW*/;
		}
		elseif( lvcd.nmcd.dwDrawStage == ( 0x10001/*_CDDS_ITEMPREPAINT*/ | 0x20000/*_CDDS_SUBITEM*/) ){ 
			//注意这里 iSubItem 的索引自0开始( 其他函数通常自1开始 )
			lvcd.clrText = lvcd.iSubItem % 2 ? gdi.RGB(255,255,255) : gdi.RGB(12,255,120);
			lvcd.clrTextBk = lvcd.iSubItem % 2 ? gdi.RGB(0,12,223) : gdi.RGB(128,23,0);
			lvcd.update()
			
			return 0/*_CDRF_DODEFAULT*/
		}
	}
}

winform.show() 
win.loopMessage();
