Home » U++ Library support » TopWindow&PopUp, TrayIcon » support for maximising on second monitor[FEATURE_REQUEST]
support for maximising on second monitor[FEATURE_REQUEST] [message #11124] |
Mon, 20 August 2007 22:30  |
nixnixnix
Messages: 415 Registered: February 2007 Location: Kelowna, British Columbia
|
Senior Member |
|
|
I posted this as a bug in the IDE somewhere else. However, it also effects TopWindow when you try to maximise it on a second monitor. If the second monitor is a different shape to the first, TopWindow will not exceed either dimension of the first monitor display. Also, TopWindow will not exceed the dimensions of the first monitor if you try to drag it to cover more than one display at once. Linux and Windows both support multiple monitors with different resolutions so I believe this is a real issue.
Nick
p.s. I am more than willing to test any potential solutions.
|
|
|
|
|
|
|
|
Re: support for maximising on second monitor[FEATURE_REQUEST] [message #36537 is a reply to message #11140] |
Wed, 06 June 2012 01:09   |
nixnixnix
Messages: 415 Registered: February 2007 Location: Kelowna, British Columbia
|
Senior Member |
|
|
Hi Mirek,
Is it possible to allow windows to be dragged to cover more than one window?
I now believe the correct behaviour is to be zoomable to cover only one monitor but to be sizeable to cover the entire desktop by dragging.
Is there a flag to control this behaviour? It looks just now as if the maximum size for zooming is also the maximum size for sizing.
Cheers,
Nick
EDIT: comenting out the WM_GETMINMAXINFO block resuts in something very like the desired behaviour for my current app. Is there a way to disable this block without changing my version of the UPP code?
How about a flag called "limitless" where, if it set, that block doesn't do anything?
[Updated on: Wed, 06 June 2012 01:17] Report message to a moderator
|
|
|
|
Re: support for maximising on second monitor[FEATURE_REQUEST] [message #36585 is a reply to message #36581] |
Mon, 11 June 2012 18:00   |
nixnixnix
Messages: 415 Registered: February 2007 Location: Kelowna, British Columbia
|
Senior Member |
|
|
Yes. I just tried
case WM_GETMINMAXINFO:
{
MINMAXINFO *mmi = (MINMAXINFO *)lParam;
Rect frmrc = Size(200, 200);
::AdjustWindowRect(frmrc, WS_OVERLAPPEDWINDOW, FALSE);
// Size msz = Ctrl::GetWorkArea().Deflated(-frmrc.left, -frmrc.top,
// frmrc.right - 200, frmrc.bottom - 200).GetSize();
// Rect minr(Point(50, 50), min(msz, GetMinSize()));
// Rect maxr(Point(50, 50), min(msz, GetMaxSize()));
Rect minr(Point(50, 50), GetMinSize());
Rect maxr(Point(50, 50), GetMaxSize());
dword style = ::GetWindowLong(hwnd, GWL_STYLE);
dword exstyle = ::GetWindowLong(hwnd, GWL_EXSTYLE);
AdjustWindowRectEx(minr, style, FALSE, exstyle);
AdjustWindowRectEx(maxr, style, FALSE, exstyle);
mmi->ptMinTrackSize = Point(minr.Size());
mmi->ptMaxTrackSize = Point(maxr.Size());
LLOG("WM_GETMINMAXINFO: MinTrackSize = " << Point(mmi->ptMinTrackSize) << ", MaxTrackSize = " << Point(mmi->ptMaxTrackSize));
LLOG("ptMaxSize = " << Point(mmi->ptMaxSize) << ", ptMaxPosition = " << Point(mmi->ptMaxPosition));
}
return 0L;
and it seems to be the best all round. Can we make this the default behaviour please?
Nick
|
|
|
|
Goto Forum:
Current Time: Fri May 09 20:08:24 CEST 2025
Total time taken to generate the page: 0.00371 seconds
|