home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-387-Vol-3of3.iso / m / mdibar.zip / MDITBAR.CPP < prev    next >
C/C++ Source or Header  |  1992-04-15  |  3KB  |  126 lines

  1. // ---------- //
  2. // MDIDLG.CPP //
  3. // ---------- //
  4.  
  5. #include <owl.h>
  6. #include <dialog.h>
  7. #include <bwcc.h>
  8. #include <mdi.h>
  9.  
  10.  
  11. _CLASSDEF( TMyMDIApp )
  12. _CLASSDEF( TMyMDIFrame )
  13. _CLASSDEF( TMyMDIChild )
  14.  
  15.  
  16. class TMDIApp : public TApplication
  17. {
  18.     public:
  19.         TMDIApp( LPSTR name,
  20.                  HANDLE hInstance,
  21.                  HANDLE hPrevInstance,
  22.                  LPSTR lpCmd,
  23.                  int nCmdShow ) :
  24.         TApplication( name, hInstance, 
  25.                       hPrevInstance, lpCmd, nCmdShow )
  26.         {};
  27.         virtual void InitMainWindow();
  28. };
  29.  
  30.  
  31.  
  32. class TMyMDIFrame : public TMDIFrame
  33. {
  34.         int nTBarHeight;
  35.         PTDialog pToolBar;
  36.     public:
  37.         TMyMDIFrame( LPSTR ATitle, LPSTR MenuName ) :
  38.         TMDIFrame( ATitle, MenuName )
  39.         {
  40.             pToolBar = new TDialog( this, "BARDIALOG" );
  41.         }
  42.         virtual void SetupWindow();
  43.         virtual PTWindowsObject InitChild();
  44.         virtual void WMSize( RTMessage msg ) =
  45.                    [ WM_FIRST + WM_SIZE ];
  46. };
  47.  
  48.  
  49.  
  50. class TMyMDIChild : public TWindow
  51. {
  52.     public:
  53.         TMyMDIChild( PTWindowsObject AParent,
  54.                      LPSTR ChildName,
  55.                      PTModule AModule );
  56. };
  57.  
  58.  
  59.  
  60. PTWindowsObject TMyMDIFrame::InitChild()
  61. {
  62.     return( new TMyMDIChild( this, "MDI-Child", NULL ));
  63. }
  64.  
  65.  
  66. void TMyMDIFrame::SetupWindow()
  67. {
  68.     TMDIFrame::SetupWindow();
  69.  
  70.     if ( pToolBar )
  71.     {
  72.         RECT rc;
  73.         GetApplication()->MakeWindow( pToolBar );
  74.         GetWindowRect( pToolBar->HWindow, &rc  );
  75.         nTBarHeight = rc.bottom - rc.top;
  76.         ShowWindow( pToolBar->HWindow, SW_SHOWNORMAL );
  77.         UpdateWindow( pToolBar->HWindow );
  78.     }
  79. }
  80.  
  81.  
  82. void TMyMDIFrame::WMSize( RTMessage msg )
  83. {
  84.     TMDIFrame::WMSize( msg );
  85.     if ( pToolBar )
  86.     {
  87.         MoveWindow( ClientWnd->HWindow,
  88.                     0, nTBarHeight,
  89.                     LOWORD( msg.LParam ),
  90.                     HIWORD( msg.LParam ) - nTBarHeight, TRUE );
  91.         MoveWindow( pToolBar->HWindow, 0, 0, 
  92.                     LOWORD( msg.LParam ),
  93.                     nTBarHeight, FALSE );
  94.     }
  95. }
  96.  
  97.  
  98. TMyMDIChild::TMyMDIChild( PTWindowsObject AParent,
  99.                           LPSTR ChildName,
  100.                           PTModule AModule ) :
  101. TWindow( AParent, ChildName, AModule )
  102. {
  103. }
  104.  
  105.  
  106.  
  107. void TMDIApp::InitMainWindow()
  108. {
  109.     MainWindow = new TMyMDIFrame( "MDI App.", "MDIMenu");
  110. }
  111.  
  112.  
  113.  
  114. int PASCAL WinMain( HANDLE hInstance, HANDLE hPrevInstance,
  115.                     LPSTR lpszCmdLine, int nCmdShow )
  116. {
  117.     TMDIApp MDIApp ( "MDI App.",
  118.                       hInstance,
  119.                       hPrevInstance,
  120.                       lpszCmdLine,
  121.                       nCmdShow );
  122.     BWCCGetVersion();
  123.     MDIApp.Run();
  124.     return ( MDIApp.Status );
  125. }
  126.