[WIN] <Maximize>/<Restore> & switching apps from taskbar problem
- Posted by Dan Moyer <DANIELMOYER at prodigy.net> Sep 01, 2001
- 465 views
I'm having a problem with my modification of Judith's elaboration of the IDE for Win32Lib which relates to my (unusual?) use of <Maximize>/<Restore> in "onResize" when the user switches apps by clicking on icons in the taskbar. I use style <Maximize>/<Restore> in "onResize" to select *slightly different* windows in the app (more content in large window, less in small, for app users convenience), but it doesn't happen correctly when the user uses the taskbar icons to select a different program and then uses the taskbar icons again to come back to the modified IDE. I'm not sure if my code logic is wrong, or if I'm not making the program sense & respond to some condition deriving from taskbar clicking, or what. I *have* made it function ok with respect to *Minimizing* the window, with a flag to know when it has been minimized and tests in "onResize" to handle <Restore> differently if the window had just been minimized or not. I thought this would handle the condition of switching apps via the taskbar, but it doesn't. THE PROBLEM: The problem is, if the window was large, and the user clicks on an icon in the taskbar for some other program, and then clicks back on my mods icon, the window is *not* re-made large, but rather it's made small. A CLUE?: I have found that if the user FIRST clicks on any "*show help documentation" button in the Edit window, which runs some "zOrder" stuff first relating to the order of showing windows on top of one another, and THEN uses the taskbar to switch apps, the problem doesn't occur, at least for some while, but after some continued taskbar clicking the problem happens again. Problem is, I don't have control over when the *user* clicks in the taskbar, so I can't just try to utilize that zOrder stuff in the onResize event, 'cause I don't know what tested conditions to put it under, I think? Code snippet follows, any help would be appreciated, thanks. Dan Moyer Here's the relevant logic portion of my code: -- set on program entry: global integer wasMinimized -- set whenever window is minimized, hopefully wasMinimized = 0 -- onResize code snippet: --*** for switching size of edit screen between small and large versions --*** by clicking <Maximize> or <Restore> box at upper right of window: --*** for large screen: if style=SIZE_MAXIMIZED or (style= SIZE_RESTORED and wasMinimized = 1) <snip> -- maximize window & put bunch of stuff in it wasMinimized = 0 -- is big now --*** for small screen: elsif style=SIZE_RESTORED and wasMinimized = 0 then <snip> -- make window "normal" size, & don't put everything in it elsif style=SIZE_MINIMIZED then wasMinimized = 1 end if