Re: Frames in Window
- Posted by Fabio Ramirez <faramire at NEMO.UNIVALLE.EDU.CO> Jan 11, 2001
- 405 views
-------Phoenix-Boundary-07081998- Hola, CK's Yahoo Mail escribi=F3 el 10/01/2001 11:35:21 a.m.: >Anybody know how to implement frames in a window=3F See Outlook Express for >example implementation. Hi, I'm not sure if this is what you are asking for (since I don't use outlook) but I think it would be useful to somebody. It's a two pane or two frames window with a splitter and it resizes with the window. I have an improved version (some minor changes, minimum limits ) if this is what you need I'll post it. ---------------8<---------------- =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D-- -- Skeleton for a window with frames (Explorer style) -- EuDesigner v 1.0 Alpha was used for initial definitions =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D-- without warning -- Uncomment after testing! include win32Lib.ew -- David Cuny's Win32 Euphoria wrapper =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D-- -- object declarations -- =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D-- -- newForm global constant newForm=3D create(Window, "New Form", 0, 73, 82, 556, 437, 0) setWindowBackColor(newForm, 12632256) setIcon(newForm, IDI_APPLICATION) -- Control in the Left frame -- newFormMleText2 global constant newFormMleText2=3D create(MleText, "newFormMleText2", newForm, 7, 24, 240, 366, 0) -- Control in the Right frame -- newFormMleText3 global constant newFormMleText3=3D create(MleText, "newFormMleText3", newForm, 259, 24, 240, 366, 0) global sequence DragLine global integer DragState DragState =3D 1 --Normal no dragging integer OldX, Xmid, Xmax, Ymin, Ymax constant Xmin =3D 0 Xmid =3D 254 constant DivPointer =3D createMousePointer( 8, 8, { " ... ", " .x. ", " .x. ", " .x. ", " . .x. . ", " .. .x. .. ", " .x....x....x. ", " .xxxxx.x.xxxxx. ", ".xxxxxx.x.xxxxxx.", " .xxxxx.x.xxxxx. ", " .x....x....x. ", " .. .x. .. ", " . .x. . ", " .x. ", " .x. ", " .x. ", " ... "} ) =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D-- global procedure onResize_newForm( integer style, integer cx, integer cy ) sequence size -- get the size of client area of window size =3D getClientRect( newForm ) Ymin =3D size[2] -- New y, depends on toolbar visible etc Xmax =3D size[3] - Xmin -- New max X after resize of window Ymax =3D size[4] - Ymin -- New max y -- Adjust size of Mle controls moveWindow( newFormMleText2, Xmin, Ymin, Xmid , Ymax , True ) moveWindow( newFormMleText3, Xmid + 2, Ymin, Xmax - Xmid - 2, Ymax , True ) -- Div bar, espace to drag DragLine =3D {Xmid - 1, Ymin, Xmid + 4, Ymax} end procedure onResize[newForm] =3D routine_id("onResize_newForm") =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D-- global procedure onMouse_newForm( integer event, integer x, integer y, integer shift ) if event =3D MouseMove then if x > DragLine[1] and x< DragLine[3] and y > DragLine[2] and y< DragLine[4] then if DragState =3D 1 then captureMouse( newForm ) setMousePointer( newForm, DivPointer ) DragState =3D 2 -- Over hot area end if else if DragState =3D 2 then setMousePointer( newForm, NULL ) releaseMouse() DragState =3D 1 elsif DragState =3D 3 then -- moving on dragging drawLine( newForm, OldX, DragLine[2], OldX, DragLine[4] ) OldX=3D x drawLine( newForm, OldX, DragLine[2], OldX, DragLine[4] ) end if end if elsif event =3D LeftDown then -- User pressed left mouse button to drag bar if DragState =3D 2 then DragState =3D 3 -- On drag setPenColor( newForm, White ) setPenWidth( newForm, 4 ) setPenROP2( newForm, R2_NOT ) OldX=3D DragLine[1] + 2 drawLine( newForm, OldX, DragLine[2], OldX, DragLine[4] ) end if elsif event =3D LeftUp then -- User release mouse button if DragState =3D 3 then setMousePointer( newForm, NULL ) releaseMouse() DragState =3D 1 drawLine( newForm, OldX, DragLine[2], OldX, DragLine[4] ) if x > Xmin and x < Xmax then -- verify a valid horizontal resize Xmid =3D x -- New position for div bar moveWindow( newFormMleText2, Xmin, Ymin, Xmid , Ymax , True ) moveWindow( newFormMleText3, Xmid + 2, Ymin, Xmax - Xmid - 2, Ymax , True ) DragLine =3D {Xmid - 1, Ymin, Xmid + 4, Ymax} --new hot div area end if end if end if end procedure onMouse[newForm] =3D routine_id("onMouse_newForm") =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D-- -- Program entrypoint WinMain(newForm, Normal) -----------------8<--------------- Fabio ------------------------------------- Fabio Ramirez R. Administrador de Redes - CSI ------------------------------------- -------Phoenix-Boundary-07081998---