aardio - 自绘下拉框演示

import win.ui;
/*DSG{{*/
var winform = win.form(text="aardio form";right=367;bottom=199)
winform.add(
combobox={cls="combobox";left=40;top=40;right=336;bottom=64;items={"啊撒旦法萨芬";"asdfasf";"asfdas啊撒旦法萨芬"};mode="dropdown";style=528;z=1}
)
/*}}*/

winform.combobox.wndproc = function(hwnd,message,wParam,lParam){
    select( message ) { 
        case 0x002B/*_WM_DRAWITEM*/ {
            import console
            var tag = {
                      INT     CtlType;
                      INT     CtlID;
                      INT     itemID;
                      INT     itemAction;
                      INT     itemState;
                      int     hwndItem;
                      ptr     hDC;
                      struct  rect = ::RECT();
                      int     itemData;
                };
            ..raw.convert(topointer(lParam),tag);
            var font = ..gdi.getFont(owner.hwnd)
            if tag.itemState==1 {
                ..gdi.fillRect(tag.hDC,0xFF8888,tag.rect);
            }  else {
                ..gdi.fillRect(tag.hDC,0xFFFFFF,tag.rect);
            }
            tag.rect.left += 5;
            ..gdi.drawText(tag.hDC,font,winform.combobox.items[tag.itemID+1],tag.rect,4/*_DT_VCENTER*/|0x20/*_DT_SINGLELINE*/);
        }
    }
}
winform.show();
::SendMessageInt(winform.combobox.hwnd,0x153,0,30);
::SendMessageInt(winform.combobox.hwnd,0x153,-1,30);
win.loopMessage();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卢光庆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值