This example uses WinDrawBitmap to draw the system-defined menu check mark bit map in response to the user selecting a menu item (WM_MENUSELECT), using the bit-map handle returned by WinGetSysBitmap.
#define INCL_WINWINDOWMGR /* Window Manager Functions */ #define INCL_WINPOINTERS /* Window Pointer Functions */ #define INCL_WINMESSAGEMGR /* Window Message Functions */ #define INCL_WINMENUS /* Window Menu Functions */ #include <os2.h> HPS hps; /* presentation-space handle */ HBITMAP hbmCheck; /* check mark bit-map handle */ HWND hwndMenu; /* menu handle */ USHORT usItemId; /* menu item id */ RECTL rclItem; /* item border rectangle */ MPARAM mpParam1; /* Parameter 1 (menu item id) */ MPARAM mpParam2; /* Parameter 2 (menu handle) */ case WM_CREATE: /* obtain check mark bit-map handle */ hbmCheck = WinGetSysBitmap(HWND_DESKTOP, SBMP_MENUCHECK); case WM_MENUSELECT: usItemId = SHORT1FROMMP(mpParam1); hwndMenu = HWNDFROMMP(mpParam2); /* get rectangle of selected item */ WinSendMsg(hwndMenu, MM_QUERYITEMRECT, MPFROM2SHORT(usItemId, TRUE), MPFROMP(&rclItem)); /* draw the check mark in the lower left corner of item's rectangle */ if (hbmCheck != NULL) { WinDrawBitmap(hps, hbmCheck, /* check mark */ NULL, /* draw whole bit map */ (PPOINTL)&rclItem,/* bit-map destination */ 0L, /* ignored since color */ 0L, /* bit map */ DBM_NORMAL); /* draw normal size */ }