devxlogo

We are an award-winning tech entrepreneurship website where trusted experts can provide value globally.

Since 1998, DevX has helped people start businesses, build websites, and provide enterprise technology to people globally. Interviewing the likes of Microsoft’s co-founder, Steve Ballmer, the publication brings comprehensive, reliable, and accessible insights to the Internet.

devxlogo

Trusted for 26 years

Over 30K Articles

1M+ Readers

Expert-reviewed

10K+ Tech Terms

As seen in:

microsoft logo
business_insider_logo
wired_logo
berkley
arstechnica_logo
hackernoon

The Latest

Use Code Profiler for Debugging

Sometimes a runtime error only manifests itself after an EXE ismade and not in debug mode. This can be hard to track down, evenwith message-box statements. Use the code profiler

Maintaining Constants

I like to use the Constant.txt file Microsoft has been kind enoughto provide. For a new project, copy Constant.txt to a new filesuch as MyConst.txt. Place MyConst.txt in the same

Where’s the Beep?!

This code will prevent a beep when you hit [ENTER] or [TAB] ina text box whose maximum character limit has been reached: Sub Form_KeyPress (keyascii As Integer)’Eliminate beep if {ENTER}

Printing Problems

Here is a tip to help with missing or mispositioned text. Thisfailing code works fine with VB3: ClsPrint Spc(10); “Enter Your Name”;currentx = 0currenty = currenty + 1Print Spc(10); “Enter

Close All Forms Before the End of a Program

It is well known that VB3 is not always as conscientious as itshould be about unloading all the forms in an application whentheapplication terminates. Because unloading all the forms for

Color My World-In Default!

Just before performing your final ‘make EXE,’ switch your desktopcolor scheme and see just how many backgrounds you have hard-coded!(Sadly, several excellent shareware controls fail here, VBPJcontributors are guilty of

Cheap Focus Tracking

The Lost_Focus and Got_Focus events are the most-used events for implementing validation and texthighlighting. Wouldn’t it be nice to respond instantly to these events and to do it from a

Save Memory with A Picture Box

Set the AutoRedraw property to True and the benefits and trade-offsinclude much faster repaints and some wasted memory. If your formis resizable, you waste a lot of memory, because the

Fast Database Lookups

Visual Basic doesn’t have a procedure like the DLookUp function that Access has. You can use thisprocedure in VB to receive the Name of an object by ID: Public Function

How to Automatically Resize Forms

The ElasticForm subroutine, part of CodeBank’s standard procedurelibrary, automatically repositions and sizes all controls on anSDI form when the user or code resizes the form. To use the routine,simply lay

Enforce Design-Time Size for MDI Forms

Because MDI forms don’t have a border property, the user can drag the borders and distort the size of theMDI form. If the user tries to resize the form, I

A Form-Level DataChanged Property

Ever wished you could use the Save parameter outside of a Validate event? Have you noticed that if abound control is changed and you set DataChanged back to False, Save

More on Null Conversion

This tip has been published more than once on pages of VBPJ(See “99 of the Hottest Tech Tips For VB Developers,”Supplement to the February 1996 issue of VBPJ, page 17).This

Providing Context Menus for Your UI Objects

Much of the ease of use of Windows 95 comes from the fact thatits user interface objects have their own context menus, whichcan be accessed through a simple right-click of

Streamline Your API Declares, Part 2

While we are speaking of SendMessage, there is another trick youmay find interesting enough to include in your programming habits.When used with some particular messages, the lParam argument isreally considered

Remember SWAP?

I was surprised to learn that the SWAP command was not implementedin Visual Basic when I read a letter in the February 1996 issueof VBPJ requesting that Microsoft bring to

A Tale of Three Beeps

Are your programs not executing instructions in VB4 that wereexecuting in VB3? Try this in Qbasic, VB3, and VB4: BEEP: BEEP: BEEP If you F8-step through this very complex code,

Open Help File Contents

Most programmers want their applications to look like commercial software, so they want to add their ownhelp files. How do you open the contents of a Windows help file in

Positioning a Common Dialog

If you are you unhappy with Microsoft’s comment in the help (“Note:You cannot specify where a common dialog box is displayed”),but like the idea of common dialog controls, try this.

Sharp = Dressed Icons

To make icons look better, Windows 95 uses three standard-size icons;16-by-16, 32-by-32, and 48-by-48. These three standard sizes should beincluded in any ICO file you create for inclusion in your

An Improved User Tip

The User Tip submitted by Nick Bulka in the January 1996 issueof VBPJ was interesting, but, as with so much code, improvable: Sub TextHiLite( t as TextBox ) t.SelStart =

Disable the Default Popup Menu on Text Boxes

Some controls in VB4 and VB5, such as the TextBox control, have a default context menu that appearswhen you right-click on the control. If you want to pop up your

Create Multiple Levels of Directories

If your users have the option to type a directory where they wantfiles installed, they may type a directory that doesn’t existor a directory that is several levels below another

A Taskbar-Compliant Version of Centerform

To center a form, you only need one API call, no UDTs, and two constants. This solution is based on thefact that GetSystemMetrics reflects real estate taken up by the

ListView Controls Don’t Accept Numeric Keys

In a collection object, such as the ListItems collection from the ListView control, or simply a generic VBcollection object, you can specify a key to uniquely identify the item. Documentation

32-Bit GetModuleUsage Workaround

I have found a solution to the problem of GetModuleUsage not workingin 32-bit VB4. The TaskID returned by Shell can be used by AppActivatelike this: TaskID = Shell(“DOSAPP.EXE”, _ vbNormalFocus)