Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: Visual Basic
Expertise: Intermediate
Aug 6, 1997

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 Long
Declare Function GetWindowLong Lib "user32" Alias _
	"GetWindowLongA" (ByVal hwnd As Long, _
	ByVal nIndex As Long) As Long
Sub 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)
Vinit Budhiraja
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date