home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / bubble.zip / SAMPLE.C < prev    next >
C/C++ Source or Header  |  1995-09-13  |  2KB  |  80 lines

  1. #define INCL_WIN
  2. #include <os2.h>
  3.  
  4. #include "bubble.h"
  5.  
  6. #define WIN    "MyWin"
  7.  
  8. MRESULT EXPENTRY WinProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
  9. {
  10.     switch (msg)
  11.     {
  12.         case WM_CREATE:
  13.         {
  14.             HWND            hwndButton, hwndBubble;
  15.             WNDPARAMS         wp;
  16.             HBUBBLECTLDATA    data;
  17.             
  18.             hwndButton = WinCreateWindow(hwnd, WC_BUTTON, (PSZ)"Click Me", 
  19.                 WS_VISIBLE | BS_PUSHBUTTON, 50, 50, 100, 50, hwnd, HWND_TOP, 
  20.                 100, NULL, NULL);
  21.  
  22.             hwndBubble = WinCreateWindow(HWND_DESKTOP, WC_HINTBUBBLE, 
  23.                 (PSZ)"Sample\nHint\nBubble", 
  24.                 HBS_TOP | HBS_USEMOUSEPOS | HBS_CENTERTEXT, 
  25.                 0, 0, 0, 0, hwnd, HWND_TOP, 101, NULL, NULL);
  26.  
  27.             data.cb = sizeof (HBUBBLECTLDATA);
  28.             data.linkedCtl = hwndButton;
  29.             data.linkX = 0;    // dont need because HBS_USEMOUSEPOS
  30.             data.linkY = 0;
  31.             data.delay = 1000;    // 1 second delay
  32.             data.hidedelay = 0;    // display as long as over attached control
  33.  
  34.             wp.fsStatus = WPM_CTLDATA;
  35.             wp.pCtlData = (void *)&data;
  36.             WinSendMsg(hwndBubble, WM_SETWINDOWPARAMS, (MPARAM)&wp, NULL); 
  37.  
  38.             return 0;
  39.         }
  40.  
  41.         case WM_PAINT:
  42.         {
  43.             HPS        hps;
  44.             
  45.             hps = WinBeginPaint(hwnd, 0 ,0);
  46.             GpiErase(hps);
  47.             WinEndPaint(hps);
  48.             return 0;
  49.         }
  50.     }
  51.     return WinDefWindowProc(hwnd, msg, mp1, mp2);
  52. }
  53.  
  54. main()
  55. {
  56.     HAB        hab;
  57.     HMQ        hmq;
  58.     QMSG     qmsg ;
  59.     HWND    hwnd;
  60.     ULONG    ff = FCF_SHELLPOSITION | FCF_MINMAX | FCF_TITLEBAR |
  61.         FCF_SIZEBORDER | FCF_SYSMENU | FCF_TASKLIST;
  62.  
  63.     hab = WinInitialize(0);
  64.     hmq = WinCreateMsgQueue(hab,0);
  65.  
  66.     WinRegisterClass(hab, (PSZ)WIN, WinProc, CS_SIZEREDRAW | CS_MOVENOTIFY, 0);
  67.     HintBubbleRegister(hab);
  68.  
  69.        WinCreateStdWindow (HWND_DESKTOP, WS_VISIBLE, &ff,
  70.                     (PSZ)WIN, (PSZ)"Hint Bubble Sample", 0, 0, 102, &hwnd);
  71.  
  72.     while (WinGetMsg (hab, &qmsg, 0, 0, 0)) 
  73.            WinDispatchMsg (hab, &qmsg);
  74.  
  75.        WinDestroyMsgQueue(hmq);
  76.        WinTerminate(hab);
  77.  
  78.     return 0;
  79. }
  80.