customPlus 添加选择框的几种方法

光庆 2024-6-2 1634

Code AardioLine:112复制
  • 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.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82.
  • 83.
  • 84.
  • 85.
  • 86.
  • 87.
  • 88.
  • 89.
  • 90.
  • 91.
  • 92.
  • 93.
  • 94.
  • 95.
  • 96.
  • 97.
  • 98.
  • 99.
  • 100.
  • 101.
  • 102.
  • 103.
  • 104.
  • 105.
  • 106.
  • 107.
  • 108.
  • 109.
  • 110.
  • 111.
  • 112.
    • import win.ui;
    • import godking.vlistEx
    • /*DSG{{*/
    • var winform = win.form(text="aardio form";right=375;bottom=199)
    • winform.add(
    • plus={cls="plus";left=8;top=8;right=336;bottom=176;notify=1;z=1};
    • vlistEx={cls="vlistEx";text="自定义控件";left=16;top=8;right=40;bottom=32;hide=1;z=2}
    • )
    • /*}}*/
    • import godking.customPlus
    • import fonts.fontAwesome
    • var itemModel = {
    • // 第一种方式:一个方框 + 一个√
    • { /* 矩形 */
    • type="rect", /* 类型:rect */
    • rectf={x=10;y=10;width=14;height=14}, /* 矩形区域范围。负数表示距离项目右边或底边的距离。 */
    • name="checktext",
    • check = true,
    • width=1, /* 边框宽度。为0则无边框。 */
    • color=0xFF0000FF, /* 正常状态下,边框颜色 */
    • checkedfillcolor = 0xFF0000FF,
    • },
    • { /* 文本 */
    • type="text", /* 类型:text */
    • rectf={x=10;y=10;width=14;height=14}, /* 文本范围。负数表示距离项目右边的距离。 */
    • /* 以下为可选项 */
    • name="checktext",
    • click=true, /* 是否响应鼠标点击事件 */
    • check=true, /* 元素可被选择。依赖name和click。鼠标点击元素时改变元素选择状态 */
    • align=1, /* 文本水平对齐方式。0、(近端)左对齐 1、居中 2、(远端)右对齐 */
    • valign=1, /* 文本垂直对齐方式。0、(近端)顶对齐 1、居中 2、(远端)底对齐 */
    • smooth=true, /* 使用平滑效果,抗锯齿 */
    • cur=32649, /* 鼠标指针,_IDC_ 开头的常量。 */
    • text="", /* 正常状态下文本 */
    • checkedtext="√", /* 元素被选择时文本 */
    • font={name="Tahoma",point=11,color=0xFFFFFFFF}, /* 正常状态下字体 */
    • }
    • // 第二种方式:自绘
    • { /* 自绘 */
    • type="paint", /* 类型:paint,处理过程proc的第一个参数为 godking.paint 对象,可用来绘制所需内容 */
    • rectf={x=30;y=10;width=14;height=14}, /* 矩形区域范围。负数表示距离项目右边或底边的距离。 */
    • proc=function(paint,itemIndex,elemIndex,rectF,disabled,checked,hovered,itemSelected,itemHovered){
    • paint = toPaint(paint); /* 绑定paint智能提示 */
    • if checked {
    • paint.fillRectF(rectF,0xFF0000FF)
    • paint.drawTextF(rectF,"√",::LOGFONT(name="Tahoma";point=11,color=0xFFFFFFFF;brush=null),0,1,1)
    • } else {
    • paint.drawRectF(rectF,0xFF0000FF,/*线宽*/,/*线型*/)
    • }
    • };
    • name="ownerdraw",
    • click=true, /* 是否响应鼠标点击事件 */
    • check=true, /* 原素是否可选择。依赖name和click。鼠标点击元素,改变元素选择状态 */
    • cur=32649, /* 鼠标指针,_IDC_ 开头的常量。 */
    • }
    • // 第三种方式:字体图标
    • { /* 文本 */
    • type="text", /* 类型:text */
    • rectf={x=50;y=10;width=18;height=18}, /* 文本范围。负数表示距离项目右边的距离。 */
    • /* 以下为可选项 */
    • name="checktextFontAwesome",
    • click=true, /* 是否响应鼠标点击事件 */
    • check=true, /* 元素可被选择。依赖name和click。鼠标点击元素时改变元素选择状态 */
    • align=1, /* 文本水平对齐方式。0、(近端)左对齐 1、居中 2、(远端)右对齐 */
    • valign=1, /* 文本垂直对齐方式。0、(近端)顶对齐 1、居中 2、(远端)底对齐 */
    • smooth=0, /* 使用平滑效果,抗锯齿 */
    • cur=32649, /* 鼠标指针,_IDC_ 开头的常量。 */
    • text='\uF096', /* 正常状态下文本 */
    • checkedtext='\uF14A', /* 元素被选择时文本 */
    • font={name="FontAwesome",h=18,color=0xFFFF0000}, /* 正常状态下字体 */
    • }
    • // 第四种方式:图片
    • { /* 图片*/
    • type="img", /* 类型:text */
    • rectf={x=70;y=10;width=14;height=14}, /* 文本范围。负数表示距离项目右边的距离。 */
    • /* 以下为可选项 */
    • name="checkimg",
    • click=true, /* 是否响应鼠标点击事件 */
    • check=true, /* 元素可被选择。依赖name和click。鼠标点击元素时改变元素选择状态 */
    • cur=32649, /* 鼠标指针,_IDC_ 开头的常量。 */
    • img = winform.vlistEx.checkBox.getDefaultUncheckedImg(), /* 正常状态下文本 */
    • checkedimg = winform.vlistEx.checkBox.getDefaultCheckedImg(), /* 元素被选择时文本 */
    • }
    • }
    • var c = godking.customPlus(winform.plus,itemModel,{{}},{
    • itemWidth=100, /*项目最小宽度,为0时根据colnum自动计算,所以不能与colnum同时=0*/
    • itemHeight=100, /*项目最小高度,为0时根据rownum自动计算,所以不能与rownum同时=0*/
    • autoSizeWidth=false, /*为true则自动将项目总宽度拉伸填满plus宽度,每个项目宽度不小于itemWidth*/
    • autoSizeHeight=false, /*为true则自动将项目总高度拉伸填满plus高度,每个项目高度不小于itemHeight*/
    • rownum=1, /*项目行数,为0时根据itemHeight自动计算,所以不能与itemHeight同时=0*/
    • colnum=1, /*项目列数,为0时根据itemWidth自动计算,所以不能与itemWidth同时=0*/
    • padLeft=0, /*plus左边空白距离*/
    • padTop=0, /*plus顶边空白距离*/
    • padRight=0, /*plus右边空白距离*/
    • padBottom=0, /*plus底边空白距离*/
    • autoFit=false, /*是否自动调整plus组件宽度或高度(其中之一),保证能刚好显示全部行或列*/
    • /*当 itemHeight>0 且 colnum>0 且 rownum=0 时,自动调整plus高度,以能显示全部行*/
    • /*当 itemWidth>0 且 rownum>0 且 colnum=0 时,自动调整plus宽度,以能显示全部列*/
    • vertical=false, /*是否将项目设置为竖向排列,行滚动方向设置为横向*/
    • bkcolor=0xFFFFFFFF, /*背景颜色*/
    • bkimg=null, /*背景图像*/
    • singleCheck=0,/*元素check单选模式。0:多选;1:每个项目内单选;2:整个列表单选*/
    • })
    • winform.show();
    • win.loopMessage();


    最新回复 (9)
    • 小光芒 2024-6-3
      0 2
      狂赞
    • 三生有幸 2024-6-4
      0 3
      狂赞加怒赞
    • Jony 2024-6-29
      0 4
      添加复选框之后,如何在添加项目的时候选择该复选框?
    • 光庆 2024-6-30
      0 5
      Jony 添加复选框之后,如何在添加项目的时候选择该复选框?

      1、可以设置 itemList 后,再通过 setChecked() 函数设置某项目的某元素的选中状态。

      Code AardioLine:2复制
    • 1.
    • 2.
      • c.setChecked(1/*itemIndex*/,"ownerdraw"/*elemName*/,true);
      • c.setChecked(1/*itemIndex*/,"checkimg"/*elemName*/,true);

      2、可以直接在 itemList 的项目中,用 checked 成员指定某元素的选中状态。

      Code AardioLine:4复制
    • 1.
    • 2.
    • 3.
    • 4.
      • itemList = {
      • { checked = {checktext=true;checkimg=true;} }
      • { checked = {ownerdraw=true;checkimg=true;} }
      • }
    • Jony 11月前
      0 6
      光庆 1、可以设置 itemList 后,再通过 setChecked() 函数设置某项目的某元素的选中状态。c.setChecked(1/*itemIndex*/,"o ...
      customPlus绑定滚动条后,在win10下用鼠标滚轮能正常滚动,在win7下鼠标滚轮不能正常滚动,请问这个是滚动条的问题还是customPlus库的问题。
    • 小光芒 11月前
      0 7
      Jony customPlus绑定滚动条后,在win10下用鼠标滚轮能正常滚动,在win7下鼠标滚轮不能正常滚动,请问这个是滚动条的问题还是customPlus库的问题。
      这个问题我能回答,是win7的问题,滚动条会丢失焦点,需要做一个判断
    • Jony 11月前
      0 8
      小光芒 这个问题我能回答,是win7的问题,滚动条会丢失焦点,需要做一个判断
      如何判断,能够让win7的滚动条滚轮能正常使用
    • 小光芒 11月前
      0 9
      Jony 如何判断,能够让win7的滚动条滚轮能正常使用
      var c = godking.customPlus(winform.custom["title"++i]/*plus*/,itemModel,itemList[i],style) c.onClick = function(itemIndex/*项目索引*/,elemIndex/*元素索引*/,elemID/*元素id*/,elemName/*元素name*/,pageIndex/*当前页项目索引*/,x/*鼠标X坐标*/,y/*鼠标Y坐标*/,disabled/*项目是否禁用*/,itemRect/*项目区域*/,elemRect/*元素区域*/){ for(n=1;#p;1){ if p[n]!=c{ p[n].selectedIndex=0 p[n].update() } }
    • Jony 11月前
      0 10
      小光芒 var c = godking.customPlus(winform.custom["title"++i]/*plus*/,itemModel,itemList[i],style) ...
      还是不太明白,能否给个简易的完整代码,谢谢!
    返回