EXAMPLE SOURCE CODE



 Windows API GetWindowRect GetClientRect

By: Kevin Picone Added: October 3rd, 2022

Category: All,Windows,WinAPI,Screen

  GetWindowRect and GetClientRect

GetWindowRect is a function in the Windows API that retrieves the dimensions of the bounding rectangle of a window. It takes a handle to the window as an input parameter and returns the dimensions of the window in a RECT structure, which contains the left, top, right, and bottom coordinates of the rectangle.

GetClientRect is a similar function that retrieves the dimensions of the client area of a window. The client area is the part of the window where the application can draw and is typically smaller than the full window because it excludes the title bar and other non-client elements. Like GetWindowRect, GetClientRect takes a handle to the window as an input parameter and returns the dimensions of the client area in a RECT structure.

Both functions are useful for getting the dimensions of a window or client area, which can be used to position controls within the window or to resize the window to fit its contents. They can be called from any application that has a handle to the window, whether it is the application that created the window or another application.

PlayBasic Code:
  //  Scale 
   OpenScreen 1600,960,32,1  ;  open screen in 'window' mode

    ScaleWindowToDeskTop()

	loadfont "ariel",1, 45


	do 
		cls

			ShowClientArea()
	  	 
	  	 
		   print "Mouse POsition:"
		  	print MouseX()
		  	print MouseY()
  
	   Sync
   loop spacekey()=true
   




	type tWindow_RECT
				X1,Y1
				X2,Y2
	endtype

linkdll "user32.dll"
   SetWindowPos(hwnd,hWndInsertAfter,x,y,cx,cy,wFlags) alias "SetWindowPos" As integer
   GetWindowRect(hwnd,RectPointer) alias "GetWindowRect" As integer
   GetClientRect(hwnd,RectPointer) alias "GetClientRect" As integer

Endlinkdll



Function ScaleWindowToDeskTop()

//  Get the Desk top width/height
   dtw=GetDesktopWidth()
   dth=GetDesktopHeight()*0.96

// Get the PB screens size
;   w=GetScreenWidth()
 ;  h=GetScreenHeight()

   // Get the PB screens window Handle
   hwnd=GetScreenHandle()

   ; Stretch the window to the size users display size
   SetWindowPos(hwnd,hWndInsertAfter,0,0,dtw,dth,wFlags)

   ; Resize PB's GFX viewport to screens (the window) new client area
   StretchGFXscreen

Endfunction



Function ShowClientArea()

		Local Xpos	=GetScreenXpos()
		Local Ypos	=GetScreenYpos()
		Local Width	=GetScreenWidth()
		Local Height=GetScreenHeight()

		local Handle=GetSCreenHandle()

		dim Rect as TWindow_REct pointer
		Rect = new tWindow_RECT
		
		
		print "SCREEN SIZE:"
		print Width
		print Height
		print ""		
		
		
		
		local Status= GetWindowREct(Handle, int(RECT))
		
		if Status
			
			print "Window RECT"
			print Rect.X1
			print Rect.Y1
			print Rect.X2
			print Rect.Y2
			print ""		
	
		endif
	

		local Status= GetClientREct(Handle, int(RECT))
		
		if Status
			print "Client RECT - area inside of window"
			print Rect.X1
			print Rect.Y1
			print Rect.X2
			print Rect.Y2
			print ""
		endif
		free Rect		

EndFunction  X,Y







Release Type: The source code & tutorials found on this site are released as license ware for PlayBasic Users. No Person or Company may redistribute any file (tutorial / source code or media files) from this site, without explicit written permission.


 

 
     
 
       

(c) Copyright 2002 / 2024 Kevin Picone , UnderwareDesign.com  - Privacy Policy   Site: V0.99a [Alpha]