Scenario: In an Access project a main form has to be positioned and rearranged depending on the size of the Access-Application window. This should be done using VBA.
As far as I know there is no way in Microsoft Access VBA to capture the Restore/Maximize-Event of the Access-Application window (I refer to the Access Window itself not any form inside this).
Is there a way to solve this issue using WIN32 API?
I don’t know of any way to use the WIN32 API to capture the Restore/Maximize Event. The best workaround I can think of is to use the Win32 API in conjunction with the Timer event of a form that is always open (either the Main Menu or some hidden form) and periodically poll the main access window to determine whether it’s currently maximized.
You’ll need to set an interval in the form’s TimerInterval property to control how frequently you need to poll the window size.
EDIT: Obviously you’ll want to keep track of the main window’s previous state so that you don’t do any unnecessary processing. The code as posted reflects this.