CnCrypt代码 之 限制只能输入数字的文本框

原创 2017年03月11日 18:42:57
LRESULT CALLBACK NumberFieldProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    WNDPROC wp = (WNDPROC)GetWindowLongPtr(hWnd, GWLP_USERDATA);

    switch (message)
    {
    case WM_PASTE:
        return 1;
    case WM_CONTEXTMENU:
        return 1;
    case WM_CHAR:
    {
        char nChar = (char)wParam;
        BOOL bConitue = (nChar >= '0' && nChar <= '9')
            || nChar == '.'
            || nChar == 8;
        if (!bConitue)
        {
            return 1;
        }

        WCHAR szOldPassword[128];
        GetWindowText(hWnd, szOldPassword, ARRAYSIZE(szOldPassword));
        DWORD dwOldSel = Edit_GetSel(hWnd);
        LRESULT lResult = CallWindowProc(wp, hWnd, message, wParam, lParam);
        WCHAR szNewPassword[128];
        GetWindowText(hWnd, szNewPassword, ARRAYSIZE(szNewPassword));
        WCHAR * lpPos = wcsstr(szNewPassword, L".");
        // 如果点在第一位,或者多于一个点,或者小数点多于两位。
        if (lpPos != NULL && (lpPos == szNewPassword || wcsstr(lpPos + 1, L".") !=NULL || wcslen(lpPos) > 3))
        {
            SetWindowText(hWnd, szOldPassword);
            Edit_SetSel(hWnd, HIWORD(dwOldSel), LOWORD(dwOldSel));
        }
        return lResult;
    }
    }

    return CallWindowProc(wp, hWnd, message, wParam, lParam);
}

void    ToNumberField(HWND hwndCtrl)
{
    ::SendMessage(hwndCtrl, EM_LIMITTEXT, 12, 0);
    SetWindowLongPtr(hwndCtrl, GWLP_USERDATA, (LONG_PTR)GetWindowLongPtr(hwndCtrl, GWLP_WNDPROC));
    SetWindowLongPtr(hwndCtrl, GWLP_WNDPROC, (LONG_PTR)NumberFieldProc);
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

HTML 限制文本框只能输入数字

1.HTML 限制文本框只能输入数字的 onkeyup+onafterpaste 事件: 2.限制文本框只能输入数字onchange事件:...
  • zxz547388910
  • zxz547388910
  • 2015年12月30日 13:44
  • 591

jquery限制文本框只能输入数字的方法,适用多种浏览器

能限制住中文符号以及粘贴,删除、箭头等无限制
  • a277632346
  • a277632346
  • 2016年11月11日 15:25
  • 486

限制文本框或文本域只能输入数字、中文和英文等

1、控制文本框只能输入数字 2、控制文本框只能输入数字、小数点 3、控制文本框只能输入英文 4、控制文本框只能输入英文、数字 5、控制文...
  • dc2222333
  • dc2222333
  • 2017年04月29日 15:58
  • 344

Qt限制文本框仅输入数字,正则表达式

lineEdit_3->setValidator(new QRegExpValidator(QRegExp("[0-9]+$")));   //只能输入数字
  • hushiwei1993
  • hushiwei1993
  • 2017年05月17日 17:58
  • 1297

jquery方法限制输入框只能输入数字,兼容各大主流浏览器

pageEncoding="UTF-8"%>        String path=request.getContextPath(); %> Insert title her...
  • u013111292
  • u013111292
  • 2016年12月14日 16:12
  • 758

VB.NET使文本框只能输入数字

编制计算类程序时文本框一般都用于输入数字数据,此时可以通过以下步骤来确保用户输入数据的正确性: 首先添加好文本框控件TextBox后把属性IMEMode的值改成Disable,这样在该文本框中就...
  • Seal203
  • Seal203
  • 2015年06月23日 13:03
  • 377

jquery封装 [ 限制文本框只能输入数字和小数] 语句,简单调用即可

使用说明:     文本框添加 numOnly 属性,属性值为 true 或者 false,当属性为true时,该文本框只能输入数字且不可以为小数;     文本框添加 decimalOn...
  • u012447000
  • u012447000
  • 2015年09月09日 22:21
  • 550

文本框只能输入特定内容如文本框只能输入数字

无标题文档 function getEvent() { if (document.all) { return window.event; } func...
  • bianjing40
  • bianjing40
  • 2016年06月20日 17:50
  • 454

图形界面中如何控制在文本框里面只能输入数字字符

图形界面中如何控制在文本框里面只能输入数字字符
  • wangyanming123
  • wangyanming123
  • 2016年05月07日 15:25
  • 781

限制HTML的文本输入框只能输入数字的4种方法

限制HTML的文本输入框只能输入数字的4种方法1. keydown 通过阻止事件往keypress传播,来禁止非数字字符在文本框显示。 function prevent(e...
  • qq_26291823
  • qq_26291823
  • 2016年11月01日 10:51
  • 11767
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:CnCrypt代码 之 限制只能输入数字的文本框
举报原因:
原因补充:

(最多只允许输入30个字)