1. Win32Lib dynamic controls
- Posted by Michael Sabal <mjs at OSA.ATT.NE.JP> Aug 27, 1998
- 485 views
While working on eWinHelp, I found a need to create and destroy controls = in the middle of the program. Following is the code for creating = controls dynamically, although I haven't had a chance to write the = destruction procedure yet. I apologize to David Cuny for modifying = Win32Lib slightly as noted in the comments. The code is about 55 lines = long. ------ Tested code ------- -- Dynactrl.ew -- Dynamic control module for Win32Lib. -- Append to the END of Win32Lib or make the following variable/routine = names -- global: -- Line 1182 of alpha-10: global sequence className, classType, ... -- Line 1420 of alpha-10: global atom WndProcAddress -- Line 1621 of alpha-10: global atom buffer1, buffer2 -- Line 1682 of alpha-10: global sequence window, window_handle, = window_func,... -- Written by Michael J. Sabal on August 27, 1998 global function addControl(integer typeOf, sequence title, atom owner, atom x, atom y, atom xSize, atom ySize, atom styleFlags) atom ctrlID =20 window =3D append(window, {owner,typeOf,title,x,y,xSize,ySize,styleFlags}) ctrlID =3D length(window) poke(buffer1,className[typeOf]&0) poke(buffer2,title&0) styleFlags =3D or_bits(classStyle[typeOf],styleFlags) =20 window_handle =3D append(window_handle, c_func(xCreateWindow, { 0, buffer1, buffer2, styleFlags, x, y, xSize, ySize, window_handle[owner], NULL, 0, NULL})) window_func =3D append(window_func, c_func(xSetWindowLong, {window_handle[ctrlID],GWL_WndProc,WndProcAddress})) window_class =3D append(window_class, classType[typeOf]) if and_bits(WS_TABSTOP,styleFlags) then window_tab[owner] =3D append(window_tab[owner],ctrlID) end if window_owner =3D append(window_owner, owner) =20 return ctrlID end function --------------------- Michael J. Sabal mjs at osa.att.ne.jp http://home.att.ne.jp/gold/mjs/index.html
2. Re: Win32Lib dynamic controls
- Posted by "Cuny, David" <David.Cuny at DSS.CA.GOV> Aug 27, 1998
- 495 views
This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. ------_=_NextPart_001_01BDD1F0.9CF9626C charset="iso-8859-1" [Michael Sabal posted some dynamic control creation code for Win32Lib] Thanks. I'll look into changing the code. There are various reasons why I allocate at the beginning of the program, but it was meant only to be a temporary stopgap. -- David Cuny ------_=_NextPart_001_01BDD1F0.9CF9626C charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> <HTML> <HEAD> <META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; = charset=3Diso-8859-1"> <META NAME=3D"Generator" CONTENT=3D"MS Exchange Server version = 5.5.2232.0"> <TITLE>RE: Win32Lib dynamic controls</TITLE> </HEAD> <BODY> <P><FONT SIZE=3D2>[Michael Sabal posted some dynamic control creation = code for Win32Lib]</FONT> </P> <P><FONT SIZE=3D2>Thanks. I'll look into changing the code. There are = various reasons why I allocate at the beginning of the program, but it = was meant only to be a temporary stopgap.</FONT></P> <P><FONT SIZE=3D2>-- David Cuny</FONT> </P> </HTML> ------_=_NextPart_001_01BDD1F0.9CF9626C--