The default text limit of an entry field is 32 characters. An application can set a non-default size when creating an entry field by setting the cchEditLimit member of an ENTRYFDATA structure and supplying a pointer to the structure as the pCtlData parameter to WinCreateWindow.

The following code fragment creates an entry field with a text limit of 12 characters:

HWND hwndEntryField2;
HWND hwndClient;
ENTRYFDATA efd;
LONG xPos    = 50,
     yPos    = 50;
LONG xWidth  = -1,
     yHeight = -1;     /* Must be -1 for ES_AUTOSIZE */

/* Initialize the ENTRYFDATA structure */
efd.cb = sizeof(ENTRYFDATA);
efd.cchEditLimit = 12;
efd.ichMinSel = 0;
efd.ichMaxSel = 0;

/* Create the entry field */
hwndEntryField2 = WinCreateWindow(
                  hwndClient,            /* Parent-window handle  */
                  WC_ENTRYFIELD,         /* Window class          */
                  "projects.xls",        /* No initial text       */
                  WS_VISIBLE    |        /* Visible when created  */
                  ES_MARGIN     |        /* Create a border       */
                  ES_AUTOSCROLL |        /* Scroll text           */
                  ES_AUTOSIZE,           /* System sets the size  */
                  xPos, yPos,            /* x and y positions     */
                  xWidth, yHeight,       /* Width and height      */
                  hwndClient,            /* Owner-window handle   */
                  HWND_TOP,              /* Z-order position      */
                  0,                     /* Window identifier     */
                  &efd,                  /* Control data          */
                  NULL);                 /* No pres. parameters   */

To expand or reduce the text limit after creating the entry field, an application can send an EM_SETTEXTLIMIT message specifying a new maximum text limit for the entry field. The following code fragment increases to 20 characters the text limit of the entry field created in the previous example:

WinSendMsg(hwndEntryField2, EM_SETTEXTLIMIT, (MPARAM)20, (MPARAM)0);


[Back] [Next]