« My complication had a complication | Main | BBOP: the ubiquitous yet under-examined UI model »

October 03, 2005


Mike Weller

Heh, I never thought of the laptop/multimonitor one... damn, now I have to go fix my app :P


I love it when I play a game at 640x480 and then after I quit, all of my windows are resized, my IM app is moved into the center of the screen, etc, etc. Add that to the list of things you have to keep track of...

ChiaFong Choo


For IE6, whenever you max it, quit and comeback, it will become a "full screen" size and not a max state. As in the app occupy the whole screen minus the taskbar but still can be drag around unlike the max state.

For me, I wasn't that detail in getting to step 6, my app just detect whether any part of its window is out of the current monitor resolution, if yes, the app will be centered to the current resolution. I skip step 7 and go direct to step 8. Ha!!!

Justin Magaram

Why not always maximize? This would seem to be the 90% solution since most people do 1 thing at a time, it maximizes visible information for the primary task at hand, and the taskbar makes it easy to switch to another window when you want to do something else. There are times I have multiple windows visible, like copying from Excel to Word, or using the Calculator, but these are not the common case. I don't use IM but I could see why this type of app would be good to run in a small window somewhere while you're doing something else.

chris hollander

you forgot one; i loose windows all the time due to tablet orientation issues. :) add docking into the mix, and its game over.

Most frequently, the outlook logon screen ends up lost in some non existant, off screen rotated out region of my desktop... killing outlook (the hard way) and possibly logging out of windows are my only options.

Ben Hollis

I've finally gotten around to posting my answer to this: a C# class that, as far as I can tell, handles everything but the high-DPI monitor issue. Check it out at http://brh.numbera.com/components/winforms/windowstatemanager/ .

Richard Gadsden

Why not always maximize?

I used to think that until I got a 22" monitor. Run at 1600x1200 on a 22" monitor and you quickly find that you'd rather change apps by clicking in their windows. Also MDI=bad.


You forgot step 2a:

Well, I launched the app twice in a row but it looks like the app only opened once. I discovered a week later that the second window opened directly on top of the first one. Can you make them shift a little?


Heh - I always thought window positioning was a "personal obsession", now I know I'm not alone :)

I followed up to step 6, then flanked the whole resolution / DPI issue by storing a *relative* position.

Chris Radke

You also need to take in account the location and size of the TaskBar. I've seen several programs position themselves underneath the TaskBar if I move it to the top of my screen or increase it's size. My positioning routine converts from Screen to Workspace coordinates and will move the Window down and right and shrink it if necessary to ensure the entire window is on the visible part of the screen. This was such a widespread problem that, according to Raymond's blog http://blogs.msdn.com/oldnewthing/archive/2003/09/12/54896.aspx, it is why the TaskBar is at the bottom of the screen and not the top.


The UI problem is a difficult one, but I can't help but think that most of the problems you describe are an intrinsic problem in the Windows development model as a whole. Since Windows needs to maintain backwards compatability, there's no chance that it's going to completely revamp itself to clear out the things that create problems.

So what do we get in the end, kids? A 10-year old operating system, inundated in nasty little hacks that make it look new and shiny.

Richard Harlos

What about saving the window position and size as a percentage of the current monitor's dimensions? That way, assuming we're not minimized or maximized, re-opening the application on a different display will always be _proportional_ to the current display rather than explicitly dictated?

Just a thought :)


Richard, that's waht I did :) It works well if you have scalable information (such a view port, charts, etc.). I'm even usign t for MDI childs. If you have fixed-size forms, it wouldn't work so well obviously.

greg - I don't think that's a Windows history problem, but illustrates a more fundamental aspect of user interfaces, and the complex interactions between presumably unrelated features.

The comments to this entry are closed.