Retrieving Data for Selected Value Set Items

The next step is to be able to retrieve the data represented by a value set item. To do this, variables are specified for combined row and column index values, item attributes, and item information. Then the VM_QUERYSELECTEDITEM, VM_QUERYITEMATTR, and VM_QUERYITEM messages are used to retrieve the index values, attributes, and data. The following sample code shows how data for selected value set items is retrieved:

ULONG  ulIdx;                       /* Combined row and column        */
                                    /* index value                    */
USHORT usItemAttr;                  /* Item attributes                */
ULONG  ulItemData;                  /* Item data                      */

/**********************************************************************/
/* Get the row and column index values of the item selected by the    */
/* user.  These values are returned in the ulIdx parameter.           */
/**********************************************************************/
ulIdx = (ULONG)WinSendMsg(
  hwndValueSet,                     /* Value set window handle        */
  VM_QUERYSELECTEDITEM,             /* Message for querying           */
                                    /* the selected item              */
  NULL, NULL);                      /* Reserved values                */

/**********************************************************************/
/* Determine the type of item that was selected. This message is      */
/* only to determine how to interpret item data when a value set      */
/* contains different types of items.                                 */
/**********************************************************************/
usItemAttr = (USHORT)WinSendMsg(
  hwndValueSet,                /* Value set window handle             */
  VM_QUERYITEMATTR,            /* Message for querying item attribute */
  MPFROMLONG(ulIdx),           /* Row and column of selected item     */
  NULL);                       /* Reserved value                      */

/**********************************************************************/
/* Get the information about the selected (non-textual) item.         */
/* If you are dealing with text, you need to allocate a buffer        */
/* for the text string.                                               */
/**********************************************************************/
ulItemData = (ULONG)WinSendMsg(
  hwndValueSet,                /* Value set window handle             */
  VM_QUERYITEM,                /* Message for querying an item        */
  MPFROMLONG(ulIdx),           /* Row and column of selected item     */
  NULL);                       /* Set to NULL because the item is not */
                               /* a text item                         */


[Back: Creating a Value Set]
[Next: Arranging Value Set Items]