[Back to DELPHI SWAG index] [Back to Main SWAG index] [Original]

      {************************************************}
      {  Copy DeskTop Demo program                     }
      {************************************************}
      {
        Here's the beginning of the resource:
        -------------------------------------------------------
        MENU_1 MENU
        BEGIN
              MENUITEM "Blit_Upper_Left_Corner_of_Desktop", 101
        END
        -------------------------------------------------------
        End of Resource (Don't include lines)
      }
      program MyProgram;

      uses WinTypes, WinProcs, OWindows;
      {$R BMPDESK}

      const
        idBlitIt = 101;

      type
        TMyApplication = object(TApplication)
          procedure InitMainWindow; virtual;
        end;

      type
        PMyWindow = ^TMyWindow;
        TMyWindow = object(TWindow)
          constructor Init(AParent: PWIndowsObject; Name: PChar);
          destructor Done; virtual;
          procedure BlitIt(var Msg: TMessage);
            virtual Cm_First + idBlitIt;
        end;

      {--------------------------------------------------}
      { TMyWindow's method implementations:              }
      {--------------------------------------------------}

      constructor TMyWindow.Init(AParent: PWindowsObject; Name: PChar);
      begin
        inherited Init(AParent, Name);
        Attr.Menu := LoadMenu(HInstance, 'Menu_1');
      end;

      destructor TMyWindow.Done;

      begin
        inherited Done;
      end;

      procedure TMyWindow.BlitIt(var Msg: TMessage);
      var
        DeskDc: HDC;
        TempDC, PaintDC: HDC;
        MyBitMap: HBitMap;
        R: TRect;
      begin
        DeskDc := GetDC(GetDeskTopWindow);
        PaintDC := GetDC(HWindow);
        GetClientRect(HWindow, R);
        BitBlt(PaintDC, 0, 0, R.right, R.bottom, DeskDC, 0, 0,
      SRCCopy);
        ReleaseDC(HWindow, PaintDC);
        ReleaseDC(GetDeskTopWindow, DeskDC);
      end;

      {--------------------------------------------------}
      { TMyApplication's method implementations:         }
      {--------------------------------------------------}

      procedure TMyApplication.InitMainWindow;
      begin
        MainWindow := New(PMyWindow, Init(nil, 'Sample ObjectWindows
                          Program'));
      end;

      {--------------------------------------------------}
      { Main program:                                    }
      {--------------------------------------------------}

      var

        MyApp: TMyApplication;

      begin
        MyApp.Init('MyProgram');
        MyApp.Run;
        MyApp.Done;
      end.

[Back to DELPHI SWAG index] [Back to Main SWAG index] [Original]