送分题,让edit控件只接受数字??

game_sage 2002-03-08 03:24:31
让edit控件只接受数字
...全文
34 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
game_sage 2002-03-10
  • 打赏
  • 举报
回复
多谢各位大哥了,结分了
shymeng 2002-03-09
  • 打赏
  • 举报
回复
以前的贴子很多的Search一下呀!!!
jintaocom 2002-03-09
  • 打赏
  • 举报
回复
sorry !刚才写错
OnKeyPress中:
if ((Key>57 || Key<48) & (Key!=8) & (Key!=46))
{
Key=NULL;
}
即可!

jintaocom 2002-03-09
  • 打赏
  • 举报
回复
OnKeyPress中:
if ((Key>57 || Key<48) & (Key!=8) ||(Key!=46))
{
Key=NULL;
}
即可!

wltom 2002-03-09
  • 打赏
  • 举报
回复
isdigt就可以了。
luo73 2002-03-09
  • 打赏
  • 举报
回复
小评一把:
1.MaskEdit,当然是最简单的了:设置EditMask=@_@
2.响应KeyPress,也行,不过用什么key>??,<<??的,多复杂呀!
不是有函数吗:isdigit(??)或isalpha(??)
3.要定了Edit的话,那么通过api设置Edit是上乘之法了!
GetWindowLong
SetWindowLong
//--------------------------------------------------------------
使用方法见下:

GetWindowLong 函数功能:该函数获得有关指定窗口的信息,函数也获得在额外窗口内存中指定偏移位地址的32位度整型值。

函数原型:LONG GetWindowLong(HWND hWnd,int nlndex);

参数:

hWnd:窗口句柄及间接给出的窗口所属的窗口类。

nlndex:指定要获得值的大于等于0的值的偏移量。有效值的范围从0到额外窗口内存空间的字节数一4例如,若指定了12位或多于12位的额外类存储空间,则应设为第三个32位整数的索引位8。要获得任意其他值,指定下列值之一:

GWL_EXSTYLE;获得扩展窗日风格。

GWL_STYLE:获得窗口风格。

GWL_WNDPROC:获得窗口过程的地址,或代表窗口过程的地址的句柄。必须使用GWL_WNDPROC函数调用窗口过程。

GWL_HINSTANCE:获得应用事例的句柄。

GWL_HWNDPAAENT:如果父窗口存在,获得父窗口句柄。

GWL_ID:获得窗口标识。

GWL_USERDATA:获得与窗口有关的32位值。每一个窗口均有一个由创建该窗口的应用程序使用的32位值。

在hWnd参数标识了一个对话框时也可用下列值:

DWL_DLGPROC:获得对话框过程的地址,或一个代表对话框过程的地址的句柄。必须使用函数CallWindowProc来调用对话框过程。

DWL_MSGRESULT:获得在对话框过程中一个消息处理的返回值。

DWL_USER:获得应用程序私有的额外信息,例如一个句柄或指针。

返回值:如果函数成功,返回值是所需的32位值;如果函数失败,返回值是0。若想获得更多错误信息请调用 GetLastError函数。
//--------------------------------------------------------------

SetWindowLong 函数功能:该函数改变指定窗口的属性.函数也将指定的一个32位值设置在窗口的额外存储空间的指定偏移位置。

函数原型:LONG SetWindowLong(HWND hWnd,int nlndex,LONG dwNewLong);

参数:

hWnd:窗口句柄及间接给出的窗口所属的类。

nlndex:指定将设定的大于等于0的偏移值。有效值的范围从0到额外类的存储空间的字节数-4:例如若指定了12位或多于12位的额外类存储空间,则应设为第三个32位整数的索引位8。要设置其他任何值,可以指定下面值之一:

GWL_EXISTYLE:设定一个新的扩展风格。GWL_STYLE:设定一个新的窗口风格。

GWL_WNDPROC:为窗口过程设定一个新的地址。GWL_ID:设置一个新的窗口标识符。

GWL_HINSTANCE:设置一个新的应用程序事例句柄。

GWL_USERDATA:设置与窗口有关的32位值。每一个窗口均有一个由创建该窗口的应用程序使用的32位值。

当hWnd参数标识了一个对话框时,也可使用下列值:

DWL_DLGPROC:设置对话框过程的新地址。

DWL_MSGRESULT:设置在对话框过程中处理的消息的返回值。

DWL_USER:设置的应用程序私有的新的额外信息,例如一个句柄或指针。

dwNewLong:指定的替换值。

返回值:如果函数成功,返回值是指定的32位整数的原来的值。如果函数失败,返回值为0。若想获得更多错误信息,请调用GetLastError函数。
大大怪老张 2002-03-09
  • 打赏
  • 举报
回复
回去试试MaskEdit先
hchile 2002-03-09
  • 打赏
  • 举报
回复
最简单的方法就是按TR@SOE()大哥说的去做,如想考量一下自己的功夫的可以用API或其他算法去做。(有时间请去逛逛街,别整天对着计算机,人也变电脑了)
scottlai 2002-03-09
  • 打赏
  • 举报
回复
通过api设置Edit只能接受数字。
代码放在FormShow()中。
// get the current style flags
LONG dwStyle = GetWindowLong(Edit1->Handle, GWL_STYLE);

// add ES_NUMBER to these
SetWindowLong(Edit1->Handle, GWL_STYLE, dwStyle | ES_NUMBER);
「已注销」 2002-03-09
  • 打赏
  • 举报
回复
俺也来助助声势 用MaskEdit吧

@_@
ahui_201 2002-03-09
  • 打赏
  • 举报
回复
强烈建议用MaskEdit!
gfh21cn 2002-03-09
  • 打赏
  • 举报
回复
如何有不屏蔽复制呢?
jspxnet 2002-03-09
  • 打赏
  • 举报
回复
用MaskEdit最好,代码都不用写。
jufen 2002-03-09
  • 打赏
  • 举报
回复
就是判断Key值
invalid 2002-03-08
  • 打赏
  • 举报
回复
xzgyb(老达摩)最方便!
40Star 2002-03-08
  • 打赏
  • 举报
回复
分我点渣就行!
superaf 2002-03-08
  • 打赏
  • 举报
回复
简单的问题,复杂化 :)
lbg 2002-03-08
  • 打赏
  • 举报
回复
抢分啦!!!!!
(大哥,给我留几分吧)
xzgyb 2002-03-08
  • 打赏
  • 举报
回复
SetWindowLong(Edit1->Handle, GWL_STYLE, GetWindowLong(Edit1->Handle, GWL_STYLE) | ES_NUMBER);
Ton2000 2002-03-08
  • 打赏
  • 举报
回复
Winsky的方法比较常用!
加载更多回复(8)

13,826

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧