{************************************************} { 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.