import win.ui;
import godking.vlistEx;
/*DSG{{*/
winform = win.form(text="多元素演示";right=951;bottom=687;bgcolor=12639424;border="thin";mode="popup")
winform.add(
plus={cls="plus";left=696;top=16;right=920;bottom=200;color=16777215;font=LOGFONT(h=-16);foreRepeat="stretch";z=2};
plus2={cls="plus";left=704;top=208;right=928;bottom=232;color=255;font=LOGFONT(h=-16);foreRepeat="stretch";z=3};
vlist={cls="vlistEx";left=8;top=8;right=688;bottom=678;db=1;dl=1;dr=1;dt=1;edge=1;transparent=1;z=1}
)
/*}}*/
t = {fields={"序号","多按钮演示","多图片演示"}};
for(i=1;10;1){
var tt={};
tt["序号"]="[@rowindex]"; // 行序号标记是不允许编辑修改的
tt["多图片演示"] = "<img name='@ownerDrawImg',full=true>"
tt["图片"] = {
"/4图/1.png",
"/4图/2.png",
"/4图/3.png",
"/4图/4.png",
}
table.push(t,tt);
}
winform.vlist.setTable(t,,200,1);
winform.vlist.setRowHeight(200);
winform.vlist.textColor = 0xFF0000;
winform.vlist.setHeaderHeight(50);
import godking.paint;
winform.vlist.ownerDrawImg = function (row,col,hdc,x,y,w,h,param){
if col===3 {
// 使用 @ownerDrawImg 图片配合 godking.paint 库,可非常方便的绘制带透明度的png图片。
var rect = ::RECT(x,y,x+w,y+h);
var rowh = ..math.floor(rect.height()/2);
var rect1 = ::RECT(rect.left,rect.top,rect.left+rowh,rect.top+rowh);
rect1.inflate(-3,-3);
// 绘制第1张图片
var p = godking.paint.fromHdc(hdc);
p.drawImage(rect1,winform.vlist.getTable()[row].图片[[1]]/*图片*/,/*透明度或图片属性*/,/*保持比例*/)
// 绘制第2张图片
rect1.offset(rowh,0)
p.drawImage(rect1,winform.vlist.getTable()[row].图片[[2]]/*图片*/,/*透明度或图片属性*/,/*保持比例*/)
// 绘制第3张图片
rect1.offset(-rowh,rowh);
rect1.right += rowh;
p.drawImage(rect1,winform.vlist.getTable()[row].图片[[3]]/*图片*/,/*透明度或图片属性*/,/*保持比例*/)
p.close();
}
}
winform.show();
win.loopMessage();
或这样:
winform.vlist.ownerDrawImg = function (row,col,hdc,x,y,w,h,param){
if col===3 {
// 使用 @ownerDrawImg 图片配合 godking.paint 库,可非常方便的绘制带透明度的png图片。
var rowh = ..math.floor(h/2);
var x,y,w,h = x+3,y+3,rowh-6,rowh-6;
// 绘制第1张图片
var p = godking.paint.fromHdc(hdc);
p.drawImageF(x,y,w,h,owner.getTable()[row].图片[[1]]/*图片*/,/*透明度或图片属性*/,/*保持比例*/)
// 绘制第2张图片
x += rowh;
p.drawImageF(x,y,w,h,owner.getTable()[row].图片[[2]]/*图片*/,/*透明度或图片属性*/,/*保持比例*/)
// 绘制第3张图片
x -= rowh;
y += rowh;
w += rowh;
p.drawImageF(x,y,w,h,owner.getTable()[row].图片[[3]]/*图片*/,/*透明度或图片属性*/,/*保持比例*/)
p.close();
}
}