虚表 —— 自定义绘制图片函数

光庆 10月前 943

Code AardioLine:34复制
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
    • import win.ui;
    • import godking.vlistEx;
    • /*DSG{{*/
    • mainForm = win.form(text="vlistEx - table adapter";right=759;bottom=449)
    • mainForm.add(
    • listview={cls="vlistEx";left=10;top=10;right=749;bottom=440;acceptfiles=1;aw=1;db=1;dl=1;dr=1;dt=1;hscroll=1;vscroll=1;z=1}
    • )
    • /*}}*/
    • mainForm.listview.setRowHeight(80);
    • var t = {}
    • for(i=1;100;1){
    • var color = gdi.ARGB(math.random(1,255),math.random(1,255),math.random(1,255),255);
    • var colortext = ..string.format("0x%X", color)
    • ..table.push(t,{"[@rowindex]",
    • "<img name='@ownerDrawImg',w=30,h=30,scale=true,param={1,"++colortext++"}> "++colortext,
    • "<img name='@ownerDrawImg',full=true,param={2,"++colortext++"}>这里是铺满的图片",
    • "<img name='@ownerDrawImg',x=0,y=0,w=20,h=20,param={1,"++colortext++"}><img name='@ownerDrawImg',x=-20,y=0,w=20,h=20,param={2,"++colortext++"}><img name='@ownerDrawImg',x=0,y=-20,w=20,h=20,param={2,"++colortext++"}><img name='@ownerDrawImg',x=-20,y=-20,w=20,h=20,param={1,"++colortext++"}>图片定点放置",
    • })
    • }
    • mainForm.listview.setTable(t,{"编号","<img name='@ownerDrawImg',w=30,h=30,scale=true,param={2,0xFF00FFFF}> 混合排版","填满单元格","定点绘制"}/*列标题*/,{50,260,160,160}/*列宽*/,1/*对齐方式*/,/*字典转为数组*/,/*字符串转为Utf8*/,/*是否克隆新表*/)
    • mainForm.listview.ownerDrawImg = function (row,col,hdc,x,y,w,h,param){
    • /*图片自绘。当img的name='@ownerDrawImg'时,调用该函数处理图片。
    • img定义时,需提供param参数给本函数调用,如 <img name='@ownerDrawImg',param={0xFF000000}*/
    • var gra=..gdip.graphics(hdc);
    • var brush = ..gdip.solidBrush(param[2]);
    • if param[1]==1 gra.fillRectangle(brush,x,y,w,h);
    • else gra.fillEllipse(brush,x,y,w,h);
    • brush.delete();
    • gra.delete();
    • }
    • mainForm.show();
    • win.loopMessage();


    最新回复 (0)
    返回