Subj : Using Prf* routines in window procs
To : Vitus Jensen
From : Herbert Rosenau
Date : Sat Jun 10 2000 12:13 pm
Am 10.06.00 00:39 schrieb Vitus Jensen
VJ> So the current design will not change: WM_MOVE updates memory
VJ> structures about the profile contents
Absolutly needless!
VJ> and WM_SAVEAPPLICATION uses PrfWriteProfileData() to dump the
VJ> changed entries to disk.
WinQueryWindowPos() for frame window size and position does the same without
having any overhead on management the info. Only size/position of child windows
NOT depending on current FRAME size are object of separat handling.
Presentation params of each window can inspected at any tim with
WinQuerypresParams(), ALL window depending information can be queried at any
time by WinQueryWindowWords(), WinQueryUlong().... So you never need to hold
lists of them by yourself. Any change the user my do is announced before!
By that:
In WM_MOVE/WM_SIZE you my modify the size and coordinates of the actual (new
size/position in MPARAMS to your need - and then let do PM the annouced
(SIZE/MOVE) action.
WM_MOVE: The point defined by x/y is changed, the point defined by cx/cy my or
my not changed.
WM_SIZE: the point defined by x/y is NOT changed, the point defined by cx/cy is
object of change.
You my
- disallow or restrict the announced action by direct manipulation the new
coordinate pairs of the message if you like to do so. Both messages are a
announce for the action, so you can manipulate it as you (the programmer) likes
to do - before the action is really done.
You should never send one of the messages! Instead use WinSetWindowPosition,
because WinSetWindowPosition does the announcements, then invalidates ALL
required rectangles and then sends WM_DRAW to all windows for redrawing.
--- Sqed/32 1.15/development 322:
* Origin: Es ist nicht alles rund, was Ecken hat ... (2:2476/493)