【第七章7.5】提示控件 -- 滑尺控件提示

贴主:admin 发贴:2024-07-31 08:40 浏量:16
// 导入 win.ui 库用于创建窗口和控件
import win.ui;

// 创建一个窗口,设置窗口标题和位置
var winform = win.form(text="aardio form";right=759;bottom=469);

// 向窗口中添加一个滑尺控件,并设置其位置、大小、最大值、最小值和层级
winform.add(
    trackbar={cls="trackbar";left=282;top=286;right=536;bottom=316;max=100;min=0;z=1}
);

// 原始注释部分,用于设置滑尺控件的提示
/**
// 导入 win.ui.tooltip 库用于设置提示
import win.ui.tooltip;

// 获取滑尺控件的提示句柄
var hwndTooltipCtrl = winform.trackbar.sendMessage(0x41E/*_TBM_GETTOOLTIPS*/,0,0);

// 创建提示控件
var tooltipCtrl = win.ui.tooltip(winform,hwndTooltipCtrl);

// 设置滑尺控件的 oncommand 事件,用于更新提示文本
winform.trackbar.oncommand = function(id,event,pos){ 
    var toolInfo = tooltipCtrl.getCurrentTool();
    if(toolInfo)toolInfo.setText( tostring(pos / 10) );
}
**/

// 替换为直接设置 tooltip 属性
winform.trackbar.oncommand = function(id,event,pos){ 
    winform.trackbar.tooltip = pos / 10;
}

// 自绘事件,用于移除获得焦点后的虚线框
winform.trackbar.onnotify = function(id,code,ptr){ 
    // 检查是否为自定义绘制通知
    if( code == 0xFFFFFFF4/*_NM_CUSTOMDRAW*/ ){
        // 获取自定义绘制通知数据
        var lvcd = winform.trackbar.getNotifyCustomDraw(code,ptr);
        // 检查绘制阶段是否为预绘制阶段
        if( lvcd.dwDrawStage == 1/*_CDDS_PREPAINT*/ ){
            // 移除焦点状态
            lvcd.uItemState = lvcd.uItemState &  ~0x10/*_CDIS_FOCUS*/;
            // 更新控件
            lvcd.update();
        }
    }
}

// 显示窗口
winform.show();

// 启动消息循环
win.loopMessage();


相关回复


    暂无评论!

发表回复