import win.ui;
/*DSG{{*/
var winform = win.form(parent=...; text="aardio Form";right=349;bottom=249 )
winform.add(
edit={ bottom=128;right=256;left=88;top=104;font=LOGFONT( name="宋体";h=-12 );z=1;text="";edge=1;cls="edit" }
)
/*}}*/

//监视传递给edit的所有消息,并针对需要干预的情况做处理
winform.edit.wndproc = function(hwnd,message,wParam,lParam){
//如果有_WM_CHAR消息传给edit
    if (message == 0x102/*_WM_CHAR*/) {
   //如果字符的ASCII码大于等于0或等于小于9
        if (wParam >= '0'# && wParam <= '9'#) {
        //返回空,即按系统默认的方法继续(不干预系统的正常流程)
            return;
        }
        //选择wParam参数,针对它的不同值处理
        select wParam {
        //为"-"的ASC码的时候
            case '-'# {
            //如果edit控件中没有任何字符,-只能在最前面
                if (#winform.edit.text == 0)
                        //返回空,即按系统默认的方法继续(不干预系统的正常流程)
                    return;
            }
            case '.'# {
                        //如果edit控件中匹配不到小数点并且能匹配到数字(因为小数点只能有一个并且必须跟在数字后面)
                if ( ! string.match(winform.edit.text, "\.") and string.match(winform.edit.text, "\d"))
                    return;

            }

           //对于删除键,等控制键不干预不处理
            case 0x8/*_VK_BACK*/, 0xD/*_VK_RETURN*/, 0x2E/*_VK_DELETE*/ {
                return;
            }

        }
        //其它字符录入一概阻断
        return 1;
    }
}

winform.show();
win.loopMessage();

  

最新文章

  1. 【CISP笔记】数据库及应用安全
  2. 大型博彩公司招聘 .net,DB,tester,android
  3. Linq的Distinct方法的扩展
  4. 父Prefab与子prefab问题
  5. CodeSmith使用总结--创建一个基础模板
  6. TcpView 查看端口的小工具(推荐)
  7. Linux运行级别简介
  8. 压缩空格的函数以及BCD码与ASCII相互转换函数
  9. ssh_Connection reset by peer报错
  10. 外观模式 门面模式 Facade 结构型 设计模式(十三)
  11. thingsboard填坑之路
  12. dubbo系列一:dubbo介绍、dubbo架构、dubbo的官网入门使用demo
  13. 文件分享系统(Django)
  14. VS编程,WPF中两个滚动条 ScrollViewer 同步滚动的一种方法
  15. [2017BUAA软工]提问回顾
  16. adc 测量子系统
  17. node实现缓存
  18. [UI] 精美UI界面欣赏[3]
  19. [Linux] 关于Unix哲学
  20. Duilib 创建不规则窗口(转载)

热门文章

  1. orcal - 子查询
  2. spring boot 入门(一)
  3. Jmeter学习记录
  4. 关于ComboBox的控件事件CBN_SELCHANGE总是取到旧值的问题
  5. 通过crt修改数据库中的存储过程
  6. css 效果之转换
  7. REATE A STATIC WEBSITE
  8. Install Oracle Database client in silent mode
  9. week05 codelab01 Babel ES6 webpack Nodejsserver等
  10. 虚拟机中安装完Lunix系统后,开机黑屏,只显示一个-,解决方法