Sends a message to a window so that it is executed immediately.


Send ( handle, message#, lowword, long )




A long whose value is the system handle of a window (that you have created in PowerBuilder or another application) to which you want to send a message.


An UnsignedInteger whose value is the system message number of the message you want to send.


A long whose value is the integer value of the message. If this argument is not used by the message, enter 0.


The long value of the message or a string.

Return value


Returns the value returned by SendMessage in Windows if it succeeds and -1 if an error occurs. If any argument's value is null, Send returns null.


PowerBuilder's Send function sends the message identified by message# and optionally, lowword and long, to the window identified by handle to the Windows function SendMessage. The message is sent directly to the object, bypassing the object's message queue. Send waits until the message is processed and obtains the value returned by SendMessage.

Messages in Windows

Use the Handle function to get the Windows handle of a PowerBuilder object.

You specify Windows messages by number. They are documented in the file WINDOWS.H that is part of the Microsoft Windows Software Development Kit (SDK) and other Windows development tools.

Posting a message

Messages sent with Send are executed immediately. To post a message to the end of an object's message queue, use the Post function.


This statement scrolls the window w_emp up one page:

Send(Handle(w_emp), 277, 2, 0)

Both of the following statements click the CommandButton cb_OK:

Send(Handle(Parent), 273, 0, Handle(cb_OK))

You can send messages to maximize or minimize a DataWindow, and return it to normal. To use these messages, enable the TitleBar, Minimize, and Maximize properties of your DataWindow control. Also, you should give your DataWindow control an icon for its minimized state.

This statement minimizes the DataWindow:

Send(Handle(dw_whatever), 274, 61472, 0)

This statement maximizes the DataWindow:

Send(Handle(dw_whatever), 274, 61488, 0)

This statement returns the DataWindow to its normal, defined size:

Send(Handle(dw_whatever), 274, 61728, 0)

You can send a Windows message to determine the last item clicked in a multiselect ListBox. The following script for the SelectionChanged event of a ListBox control gets the return value of the LB_GETCURSEL message which is the item number in the list (where the first item is 0, not 1).

To get PowerBuilder's index for the list item, the example adds 1 to the return value from Send. In this example, idx is an integer instance variable for the window:

// Send the Windows message for LB_GETCURSEL
// to the list box
idx = Send(Handle(This), 1033, 0, 0)
idx = idx + 1

See also