Create Numeric-Input Text Boxes

In almost every application’s project you come across, fields necessitate the use of numeric text boxes-text boxes that should accept only numeric values. You can deal with this situation by either using a Masked Edit control or by writing code in the KeyPress event procedure of every text box. Here is an alternative method for accomplishing the same objective that can be used with the 32-bit version of VB4. The advantage of this method is that it eliminates the need to write code in every text box. Also, because this method is applicable to the basic text-box behavior of control in VB4, you don’t need to worry about the specific behavior of the Masked Edit control.To see how this method works, load a new project and insert a new module, “Module1,” into it. Now insert these statements in the declarations section of Module1:

 Declare Function SetWindowLong Lib "user32" Alias _"SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, _	ByVal dwNewLong As Long) As LongDeclare Function GetWindowLong Lib "user32" Alias _	"GetWindowLongA" (ByVal hwnd As Long, _	ByVal nIndex As Long) As LongSub NumericEdit(TheControl As Control)	Const ES_NUMBER = &H2000&	Const GWL_STYLE = (-16)	Dim x As Long	Dim Estyle As Long	EStyle = GetWindowLong(TheControl.hwnd, GWL_STYLE)	EStyle = EStyle Or ES_NUMBER	x = SetWindowLong(TheConrol.hwnd, GWL_STYLE, EStyle)End Sub

Next, insert a new form into the project. Add a text box, Text1, to this form and place this code in the Form_Load event procedure:

 Call NumericEdit(Text1)
Share the Post:
Share on facebook
Share on twitter
Share on linkedin

Overview

Recent Articles: