Post
by tk » 10 Mar 2006, 13:31
Posted by: tk
Hi Tom,
to resize a table into a form or dialog, i catch the WM_Size in the form or
dlg in following manner:
On WM_Size
Call GetClientRect( hWndForm, c_nLeft, c_nTop, c_nRight, c_nBottom )
Call SalSendMsgToChildren( hWndForm, NCF_OnChangeSize, 0, 0 )
Now the ChildTblWindows can catch the sendet NCF_OnChangeSize to react
(change the size of the table, pos the buttons or fields, etc.).
In my ControlPanel, the user works with Click or DoubleClick, or with some
buttons, which are positioned on the top of the dialog (so I don't have to
repos them).
Also you can design the TreeColumns in the Table, so the user can't see, if
it is a table or a list (assuming you are using M!Table).
Another possibility is, to use a list box from classType "cOutlineListBox",
to build a treeView.
The tabs in the tabWindow repositions automatically with the size of the
form and so the forms in the tabs. If you have tables in the forms, they can
also catch the WM_Size (suggest you to build a class cfrmSizable and
ctblCanSize or so). And if you have fields in the form, it is possible to
reposition them.
For the handling between the Buttons(Commanders) and the Tables, Fields, ...
I use the observer pattern, which is very handy for conversation between one
controlerPanel and many Forms, Tabs, Dlgs, ... (some ideas to implement this
pattern in Centura you can get from the Centura-Homepage).
hoping this will help you a little
so long - thomas