home *** CD-ROM | disk | FTP | other *** search
/ The C Users' Group Library 1994 August / wc-cdrom-cusersgrouplibrary-1994-08.iso / listings / v_02_03 / 2n03020a < prev    next >
Text File  |  1991-01-29  |  2KB  |  119 lines

  1.  
  2.  
  3. long FAR PASCAL ExampleWndProc( hWnd, uMsg, wParam, lParam)
  4. HWND        hWnd;
  5. unsigned uMsg; 
  6. WORD        wParam; 
  7. LONG        lParam;
  8. LONG lReply; 
  9. RECT rRect;
  10.  
  11. if ( NW_MessageFilter( hWnd, message, wParam, lParam (LONG FAR *) &lReply) )
  12.     return( lReply);
  13.  
  14. switch ( message)
  15.     {
  16.     
  17.     case WM_PAINT:
  18.         ...
  19.         /* normal paint processing */
  20.         ...
  21.         break;
  22.  
  23.     case WM_COMMAND:
  24.         switch ( wParam)
  25.             {
  26.             case WM_CLOSE:
  27.                 ShowWindow( hWnd, SW_HIDE);
  28.                 UpdateWindow( hWnd);
  29.                 GetWindowRect( hWnd, (LPRECT) rRect);
  30.                 OMF_Closing (ghOMF, (LPRECT) rRect);
  31.                 break;
  32.  
  33.             /* other menu command processing */
  34.             ...
  35.             }
  36.  
  37.     case WM_SYSCOMMAND:
  38.         switch ( wParam & 0xFFF0)
  39.             {
  40.             case SC_MAXIMIZE:
  41.                 if ( isZoomed( hWnd))
  42.                     NW_Restore( hWnd);
  43.                 else
  44.                     NW_Maximize( hWnd);
  45.                 break;
  46.  
  47.             case SC_RESTORE:
  48.                 NW_Restore( hWnd);
  49.                 break;
  50.             }
  51.         break;
  52.  
  53.     case WM_OMF:
  54.         return( MessageFromOMF( hWnd, wParam, lParam) );
  55.  
  56.     default:
  57.         return( DefWindowProc( hWnd, message, wParam, lParam);
  58.     }
  59. return( 0L);
  60. }
  61.  
  62. long PASCAL MessageFromOMF( hWnd, wParam, lParam)
  63. HWND     hWnd;
  64. WORD     wParam;
  65. LONG        lParam;
  66. {
  67. RECT rRect;
  68.  
  69. switch( wParam)
  70.     {
  71.     case CREATE_OMF:
  72.         ...
  73.         /* Initialize object. Read in data (gFile has file root) */
  74.         ...
  75.         return( CO_OK);    /* CO_ERROR if failed */
  76.  
  77.     case OPEN:
  78.         ...
  79.         /* set title text, other window init */
  80.         ...
  81.         GetWindowRect( hWnd, (LPRECT) &rRect);
  82.         OMF_Opening( ghOMF, (LPRECT) &rRect);
  83.         NW_Restore( hWnd);
  84.         UpdateWindow( hWnd);
  85.         break;
  86.  
  87.     case HAS_METHOD:
  88.         switch( (unsigned) LOWORD( lParam))
  89.             {
  90.             case CREATE_OMF:
  91.             case OPEN:
  92.             case TERMINATE:
  93.             case DIE_PLEASE:
  94.                 return( METHOD_PRESENT);
  95.  
  96.             default:
  97.                 return( NO_METHOD);
  98.             }
  99.  
  100.     case TERMINATE:
  101.         ...
  102.         /* save data, state, etc. */
  103.         ...
  104.         OMF_Term( ghOMF);
  105.         return( TERMINATE_OK);
  106.  
  107.     case DIE_PLEASE:
  108.         DestroyWindow( hWnd);
  109.         PostQuitMessage( 0);
  110.         break;
  111.  
  112.     }
  113. return( 0L);
  114. }
  115. ...
  116. /* end of code fragment */
  117.  
  118.