Corel Logo
Divider
Corel Solution Partners Program
Corel Approved Service Bureaus
Partner Solutions
Developer Support
Top

Navigational BarCorel

Ball
Date

The Date control is used to assist entry of dates by providing a calendar browsing dialog box. It appears as an edit field with a button to the right that has a calendar page icon. If the button is clicked or the F4 key is pressed, a dialog box appears so the user can select a date. The selected date is displayed in the format chosen in the Windows Control Panel.

The keyboard interface for the calendar dialog box that comes up when the calendar button is clicked is as follows:

Key Result
Left Go back one day.
Right Go forward one day.
Up Go back one week.
Down Go forward one week.
PgUp Go back one month.
PgDn Go forward one month.



The mouse interface for the calendar dialog box is as follows:
Click Result
@@ Go back one year
!! Go forward one year.
@ Go back one month.
! Go forward one month.
Date Select that date and dismiss the dialog box.
Today Select today's date and dismiss the dialog box.


The Date control is used like a normal edit control. It responds to most of the same messages as an edit control and sends notifications to its parent that are the same as those for an edit control. When you specify dimensions for the control, the button will be placed inside the dimensions you give and the edit field portion of the control will fill the remainder of the area.

Working examples of the definition and use of the Date control are in the sample program. See Shared Code Sample Applications in the introductory section of this manual.Class Name
WCWP_DATE

Styles
DATES_VALIDATE
When the focus is moved from the field, the string in the field will be checked to see if it is a valid date string and will be reformatted to a standard display format.

Date Structures



WPDate

Contains the information used by the Date control.

Definition


         typedef struct

         {

              WORD wYear;

              BYTE bMonth;

              BYTE bDay;

              BYTE bHour;

              BYTE bMinute;

              BYTE bSecond;

              BYTE bDayOfWeek;

              BYTE bTimeZone;

              BYTE bUnused;

         } WPDATE, FAR* LPWPDATE;










Types
WPDATE
The WPDATE structure type.

LPWPDATE
A far pointer to a WPDATE structure.

Members
wYear
The current year.

bMonth
The current month.

bDay
The current day.

bHour
The current hour.

bMinute
The current minute.

bSecond
The current second.

bDayOfWeek
The current day of the week.

bTimeZone
The current time zone.

bUnused
Reserved.

The Date control works only with the first three items (wYear, bMonth, bDay).



Date Messages



DATE_GETDATE

Gets the date in binary format.

Members
wParam
0.

lParam
Pointer to WPDATE structure where the date (year, month, day) is to be placed.

Return Values
Returns zero if date is valid, 1 if not valid.

DATE_SETDATE

Sets date using binary format.

Members
wParam
0.

lParam
Pointer to WPDATE structure containing the date.

Additional Messages

The following standard Windows edit control messages are also supported by the Date control.


         EM_CANUNDO

         EM_EMPTYUNDOBUFFER

         EM_GETMODIFY

         EM_GETSEL

         EM_LIMITTEXT

         EM_REPLACESEL

         EM_SETMODIFY

         EM_SETSEL

         EM_UNDO

         WM_ENABLE

         WM_GETDLGCODE

         WM_GETFONT

         WM_GETTEXT

         WM_GETTEXTLENGTH

         WM_SETTEXT









Date Notification



WM_COMMAND

The WM_COMMAND message is sent from the control to its parent window whenever certain events occur.

Members
wParam
Contains the window ID of the Date control.

lParam
The LOWORD contains the handle to the window. The HIWORD contains one of the values in the following table.

Value Definition
EN_CHANGE Same as the Windows edit control.
EN_ERRSPACE Same as the Windows edit control.
EN_HSCROLL Same as the Windows edit control.
EN_MAXTEXT Same as the Windows edit control.
EN_SETFOCUS Same as the Windows edit control.
EN_UPDATE Same as the Windows edit control.
EN_KILLFOCUS Same as the Windows edit control.

Drag/Drop Well

The Drag/Drop Well control looks like a recessed box with an icon in it. It handles the WordPerfect drag/drop protocol on behalf of the parent of the control. The user presses and holds the left mouse button to drag an object from this control to another window that can accept the dragged object. The control may also be a destination, so an object can be dragged and dropped onto this control.

Class Name
WCWP_DDWELL is the class name for the Drag/Drop Well control. The window text is the name of the icon that will be displayed in the control.

Drag/Drop Well Structures



DDWDATA

The DDWDATA structure is maintained for each control and is used to pass messages from the control to its parent and to receive data back from the parent.

Definition


         typedef struct

         {

              HWND hwnd;

              UINT uiId;

              DWORD     dwRsvp;

              HINSTANCE hInstIcon;

              WORD idIcon;

              HICON     hIcon;

              WORD wIndex;

              LPDDROPOBJECT  lpObject;

         } DDWDATA, FAR* LPDDWDATA;










Types
DDWDATA
The DDWDATA structure.

LPDDWDATA
A long pointer to a DDWDATA structure.

Members
hwnd
Window handle of the drag/drop well control sending the message.

uiId
ID of the drag/drop well control sending the message.

dwRsvp
On a WPMSG_DD_RSVP message, this contains the response sent by the window that the cursor is over.

hInstIcon
Instance handle for this icon. On the WPMSG_DD_ICONHINST message, the hInstance of the module containing the icon should be placed in this field. The hInstance can be the actual hInstance or WPRES_TASK, WPRES_SHARED_RESOURCE, and so forth.

idIcon
Identifier for icon (0 for named icon).

hIcon
Handle to the icon that is displayed for this control.

wIndex
Used on WPMSG_DD_DEST messages from a drag/drop list box to indicate the item that the cursor is over.

lpObject
Pointer to the object being dragged.

Drag/Drop Well Notification



WM_COMMAND

Sent from the control to its parent window whenever certain events occur.

Members
wParam
Contains the window ID of the Column Manager control.

lParam
The LOWORD contains the handle to the window. The HIWORD contains one of the following values.

Value Definition
DDWN_DBLCLK The control was double-clicked.
DDWN_PROMPT_BEGIN The mouse has passed into the control.
DDWN_PROMPT_END The mouse has passed out of the control.






The Drag/Drop Well control also sends notifications and requests to its parent via the Shared Code registered message. For these messages, lParam contains the address of the DDWDATA structure associated with the control. wParam will be one of the values in the following table.

Value and Definition
WPMSG_DD_ICONHINST The hInst where the control's icon resides should be returned in the hInstIcon field. WPRES_SHARED, WPRES_SHARED_RESOURCE, WPRES_TASK, WPRES_TASK_RESOURCE can be used. If this message is not handled, WPRES_SHARED_RESOURCE is assumed.
WPMSG_DD_GETOBJECT A pointer to the drag/drop object should be returned in the lpObject member of DDWDATA. The hCursor field of the object can be the handle to the cursor to be displayed or 1 to use the control's icon as the cursor.
WPMSG_DD_RSVP dwRsvp in DDWDATA contains the response to a DDREQ... message from the potential drag/drop client. DDRSVP_FORMAT or DDRSVP_RENDER flags may be set. DDRSVP_ACCEPT may be set when the object is dropped. The hObject member of DDWDATA should not be changed.
WPMSG_DD_FREEOBJECT Indicates that the user released the mouse button. This means the object may have been dropped (in which case a WPMSG_DD_RSVP would have been sent) or the mouse button was released over a window that could not accept the object.
WPMSG_DD_DEST This message is sent to the parent of a control that is a drag/drop destination. All drag/drop well controls are potential destinations; the parent must respond properly to WPMSG_DD_DEST messages to actually enable drag/drop. WP List Boxes may be drag/drop destinations if the WLB_DRAGDROP message is sent to it to enable drag/drop. The parent should process the drag/drop message packaged inside the DDWDATA structure in WPMSG_DD_DEST appropriately and then return the response in the dwRsvp member of the DDWDATA structure that was sent.













Filename Entry

The Filename Entry control is used to assist entry of filenames or directory paths by providing a browsing dialog box. The Filename Entry control appears as an edit field with a button to the right that has a file folder icon. If the button is clicked or the F4 key is pressed, a dialog box appears allowing the user to select a file or a directory.

The Filename Entry control is used like a normal edit control. It responds to most of the same messages as an edit control and sends notifications to its parent that include those for an edit control. When you specify dimensions for the control, the button will be placed inside the dimensions given and the edit field portion of the control will fill the remainder of the area.

Working examples of the definition and use of the Filename Entry control are in the sample program. See Shared Code Sample Applications in the introductory section of this manual.

Class Name
WCWP_FILENAME

Styles
FNES_FO_DOESNTHAVETOEXIST
The filename entered is not required to exist.

FNES_PATHNAME
This control will expect a directory path rather than a filename. When the control's button is clicked to bring up the Select Directory dialog box, the path entered there will be validated unless the FNES_FO_DOESNTHAVETOEXIST style bit is also set. If the pathname entered is not valid, an error message box will be displayed. If the pathname entered is valid, but does not exist, a "Create? Yes or No" message box will be displayed, allowing the user to create the path. Note that validation only occurs from the dialog box. If the user of this control wishes to validate what is typed into the edit portion of the control, the owner of the control must perform the validation himself, usually on a KILLFOCUS message or notification.

FNES_PATHNAME_NOVALIDATE
The directory path will not be validated.

Filename Entry Functions



WfneGetEditHwnd

Gets the window handle of the edit portion of the Filename Entry control.

Prototype

         HWND FAR PASCAL WfneGetEditHwnd ( HWND hwndFne );







Parameters
hwndFne
The window handle of the Filename Entry control.

Return Values
The window handle of the edit box portion of the control.


Filename Entry Messages



FNE_SETDEFDIR

Sets the default directory where the dialog box will be if the button is clicked to bring up the browsing dialog box.

Members
wParam
0.

lParam
A far pointer to a string containing the default directory.

FNE_SETDEFTMPL

Sets the default filename template for the files to be displayed in the files list box of the browsing dialog box, if the button is clicked to bring up the browsing dialog box.

Members
wParam
0 Note: this NEEDS to be set to 0.

lParam
A far pointer to a string containing the default template. The default template is of the form of a description followed by a quoted wildcard template in parentheses. For example:
Executable Files ("*.exe")
Multiple wildcards can be specified as well. Separate multiple wildcards with a space. For example:
WordPerfect Macro Files ("*.wcm" "*.wpm")

If FNE_SETDEFTMPL is not sent, the default template is:

All Files ("*.*")
Additional Messages

The following standard edit control messages are also supported and passed through to the edit control child of the filename search control.


         EM_CANUNDO

         EM_EMPTYUNDOBUFFER

         EM_GETMODIFY

         EM_GETSEL

         EM_LIMITTEXT

         EM_REPLACESEL

         EM_SETMODIFY

         EM_SETSEL

         EM_UNDO

         WM_ENABLE

         WM_GETDLGCODE

         WM_GETFONT

         WM_GETTEXT

         WM_GETTEXTLENGTH

         WM_SETTEXT











Filename Entry Notification



WM_COMMAND

Sent from the control to its parent window whenever certain events occur.

Members
wParam
The window ID of the Filename Entry control.

lParam
The LOWORD contains the handle to the window. The HIWORD contains zero or the following value.

Value and Definition
FNEN_DLGDISMISS The Select File or Select Directory dialog box was dismissed
FNEN_DLGRAISE The Select File or Select Directory dialog box was raised.






Additional Notifications

The following standard edit control notifications are also supported and sent from the Filename Entry control to the Edit control child of the Filename Search control.


         EN_CHANGE

         EN_ERRSPACE

         EN_HSCROLL

         EN_KILLFOCUS

         EN_MAXTEXT

         EN_SETFOCUS

         EN_UPDATE













Name Search List Box

The Name Search List Box provides a way to search for an item in a list box using the entire text of the item. This control is part of the Dialog Box Manager system. The Name Search List Box is a custom control that implements WordPerfect style name search as a replacement for the Windows standard first character search. It can be used just like a standard list box in dialog boxes or windows. As each character is entered, a search string is displayed in a small window located above the list box (this window can be moved to a different location by using WPMSG_SET_NSLB_POPUP) and the best match is selected in the list box. Name Search in a Sorted List Box

In a sorted list box a binary search is performed through the list box to find the item that most closely matches the search string. If the list box is owner-drawn, the parent of the list box is asked to make the comparison through the WM_COMPAREITEM message. If the list box is not owner-drawn, then a case-insensitive lexical comparison is made. This comparison does not work if any of the characters that fall between 'Z' and 'a', namely [ \ ] ^ _ ' appear in the list box item or the search string. A search is performed when a character is added or removed in the search pop-up. Name Search in an Unsorted List Box

In an unsorted list box, a sequential search is initiated from the item that currently has the focus, or if no item is selected, from the first item in the list box. The search wraps around from the end of the list box to the start of the list box if necessary. A match occurs when a perfect prefix match is found. If a perfect prefix match is not found, then the focus does not change. If the list box is owner-drawn, then the owner of the list box is asked to make the comparison though the WM_COMPAREITEM message. If the list box is not owner-drawn, then a case-insensitive lexical comparison is made. This comparison does not work if any of the characters that fall between 'Z' and 'a', namely [ \ ] ^ _ ' appear in the list box item or the search string. A search is performed only when a character is added, not when one is removed. Name Search in an Owner-Drawn List Box

In an owner-drawn list box, the owner of the list box is asked to perform each comparison through the WM_COMPAREITEM message. There is an override capability to terminate the search early; see the WM_COMPAREITEM message for details. Name Search in Multiple and Extended Selection List Boxes

All previous selections are deselected with each character entered for a name search. Name Search in Multicolumn and No-Integral-Height List Boxes

The name search pop-up will appear on the first column of a multicolumn list box, unless the position is changed though the WPMSG_SET_NSLB_POPUP message. When a selection is made, the list box will make sure the item selected is completely visible.

Working examples of the definition and use of the Name Search List Box control are in the sample program. See Shared Code Sample Applications in the introductory section of this manual.

Class Name
WCWP_NS_LISTBOX

Name Search List Box Messages



NSLB_CANCELPOPUP

Sent to a Name Search List Box to cancel the name search and remove the pop-up name search box.

Members
wParam
0.

lParam
0L.

NSLB_QUERYPOPUP

Sent to a Name Search List Box to determine whether or not the name search pop-up is active.

Members
wParam
0.

lParam
0L.

Return Values
Returns TRUE if name search pop-up is visible, FALSE otherwise.

WM_COMPAREITEM

This message is sent by an owner-drawn Name Search List Box to the parent of the list box as a request for it to perform a comparison.

Members
wParam
0.

lParam
Contains a long pointer to COMPAREITEMSTUCT data structure (see Windows Programmer's Reference Vol. 3). A long pointer to the search string is contained in itemData2. The index of the item in the list box to make the comparison with is contained in itemID1. The value of itemData1 is undefined.

Return Values

-1       Item 1 sorts before the search string.

0        Item 1 matches the search string.

1        Item sorts after the search string.











itemID2 of the COMPAREITEMSTRUCT can be used to short-circuit the search. It is initialized to 1 before the message is sent. If it is greater than 1 when the message is returned, then the value in itemID2 is used as the item to select and no more comparisons are made.

In the COMPAREITEMSTRUCT that is received, the CtlType field will be set to ODT_LISTBOX for WM_COMPAREITEM messages sent to sort items in the list box. When the WM_COMPAREITEM message is sent because of activation of the name search feature, the CtlType field will be set to ODT_NAMESEARCHLISTBOX.

WPMSG_SET_NSLB_POPUP

Sent as a Shared Code 7.x message by the Name Search List Box to the parent of the list box to allow the position of the pop-up to be changed.

Members
wParam
WPMSG_SET_NSLB_POPUP

lParam
A long pointer to a NSLBSIZESTRUCT data structure containing the handle of the list box and an LPRECT to a rectangle containing the coordinates of the name search pop-up. The parent can move the pop-up wherever it wishes by modifying this rectangle.

Divider

Copyright © 1996 Corel Corporation.
contact info

To contact Customer Service at one of our worldwide locations, click here

Last Updated: September 9, 1996