1. RE: Who can write an inputbox.e?
- Posted by Patrick.Barnes at transgrid.com.au Jan 20, 2003
- 472 views
Create a child window, and the controls inside that (textfield, buttons etc) When you want the user to enter a value, call openWindow(mychildwin) To continue once the user has clicked a button (Ok, or Cancel, or whatever you have put in the window) have a procedure defined ... for example procedure on_click_Cbutton(integer ID, integer Event, sequence params) and set the handler for those buttons you defined to point to it: setHandler({myokbutton, mycancelbutton}, w32HClick, routine_id("on_click_Cbutton") ) So, when the user clicks a button, the procedure on_click_Cbutton will be called, so you can stick whatever you want inside of that procedure... ie procedure on_click_Cbutton(integer ID, integer Event, sequence params) if ID = myokbutton then data = getText(mytextfield) closeWindow(mychildwin) restofmyprogram() elsif ID = mycancelbutton then data = "" closeWindow(mychildwin) restofmyprogram() end if end procedure > Euphoria has a long way to go! You may be used to VB, but at least our language isn't full of security holes! You may be used to C, but at least our language doesn't have so many different ways of doing things, that reading another person's code can be next to impossible! ...I'll stop now. -----Original Message----- From: jordah at btopenworld.com [mailto:jordah at btopenworld.com] Sent: Monday, 20 January 2003 15:22 To: EUforum Subject: Re: Who can write an inputbox.e? have u thought of getText().....or EM_GETTEXT? Jordah ----- Original Message ----- From: "Liu Junfeng" <rufi at 163.com> To: "EUforum" <EUforum at topica.com> Sent: Monday, January 20, 2003 3:34 AM Subject: Who can write an inputbox.e? > > just like the message_box() show some message,I'd like an input_box() > to get some input. > I can make a window to input some text,but I don't know how to return > the text. > > Euphoria has a long way to go! > > > TOPICA - Start your own email discussion group. FREE! > --- TOPICA - Start your own email discussion group. FREE! *********************************************************************** ***********************************************************************
2. RE: Who can write an inputbox.e?
- Posted by Liu Junfeng <rufi at 163.com> Jan 20, 2003
- 460 views
I am not satisfied with your solution,here is mine: include win32lib.ew without warning integer inputbox,label,entry,ok,cancel sequence Text procedure Click_cancelButton(integer self, integer event, sequence parms) closeWindow( findParentWindow(self) ) end procedure procedure Click_okButton(integer self, integer event, sequence parms) Text=getText(entry) closeWindow( findParentWindow(self) ) end procedure global function input_box(sequence text,sequence title,integer parent) integer Width,Height sequence SrceenSize,controlRect SrceenSize = getCtlSize( Screen ) Width=280 Height=120 Text="" inputbox= create(Window,title,parent,(SrceenSize[1]-Width)/2,(SrceenSize[2]-Height)/2,Width,Height,{WS_CAPTION,WS_BORDER}) label = create(LText,text,inputbox,10,10,200,20,0) entry = create( EditText, "", inputbox, 10, 30, 180, 25, 0 ) ok = create( PushButton, "OK", inputbox, 20, 65, 60, 20, 0 ) cancel= create( PushButton, "Cancel",inputbox, 120, 65, 60, 20, 0 ) setHandler(ok, w32HClick, routine_id( "Click_okButton" )) setHandler(cancel, w32HClick, routine_id( "Click_cancelButton" )) openDialog(inputbox) return Text end function The key point is to use openDialog, not openWindow. Patrick.Barnes at transgrid.com.au wrote: > Create a child window, and the controls inside that (textfield, buttons > etc) > > When you want the user to enter a value, call openWindow(mychildwin) > > To continue once the user has clicked a button (Ok, or Cancel, or > whatever you have put in the window) > have a procedure defined ... for example > > procedure on_click_Cbutton(integer ID, integer Event, sequence params) > > and set the handler for those buttons you defined to point to it: > > setHandler({myokbutton, mycancelbutton}, w32HClick, > routine_id("on_click_Cbutton") ) > > So, when the user clicks a button, the procedure on_click_Cbutton will > be called, so you can stick whatever you want inside of that > procedure... ie > > procedure on_click_Cbutton(integer ID, integer Event, sequence params) > if ID = myokbutton then > data = getText(mytextfield) > closeWindow(mychildwin) > restofmyprogram() > elsif ID = mycancelbutton then > data = "" > closeWindow(mychildwin) > restofmyprogram() > end if > end procedure > > > > Euphoria has a long way to go! > You may be used to VB, but at least our language isn't full of security > holes! > You may be used to C, but at least our language doesn't have so many > different ways of doing things, that reading another person's code can > be next to impossible! > > ...I'll stop now. > > > -----Original Message----- > From: jordah at btopenworld.com [mailto:jordah at btopenworld.com] > Sent: Monday, 20 January 2003 15:22 > To: EUforum > Subject: Re: Who can write an inputbox.e? > > > have u thought of getText().....or EM_GETTEXT? > > Jordah > ----- Original Message ----- > From: "Liu Junfeng" <rufi at 163.com> > To: "EUforum" <EUforum at topica.com> > Sent: Monday, January 20, 2003 3:34 AM > Subject: Who can write an inputbox.e? > > > > just like the message_box() show some message,I'd like an input_box() > > to get some input. > > I can make a window to input some text,but I don't know how to return > > the text. > > > > Euphoria has a long way to go! > > > > > > TOPICA - Start your own email discussion group. FREE! > > > > --- > > > TOPICA - Start your own email discussion group. FREE! > > > *********************************************************************** > > > *********************************************************************** > > Euphoria has a long way to go!
3. RE: Who can write an inputbox.e?
- Posted by Liu Junfeng <rufi at 163.com> Jan 21, 2003
- 474 views
Pete Lomax wrote: > Some comments about this: > > > > > Like I say, the above works fine; if the above suggested mods cause > problems, then maybe just let sleeping dogs lie. If you intend to use > it alot in the future though, the above advice stands. > > Pete > PS maybe a destroy(inputbox) prior to each time calling input_box > would be same, no experience here Anyone? > > I got to know Euphoria only ten days ago,so I havn't much experience. Here is my modified code: -- inputbox.ew - open an inputbox -- Copyright (C) 2003 Liu Junfeng -- If you wish to contact me, send an e-mail to rufi at 163.com include win32lib.ew without warning constant Width=280,Height=120 sequence ScreenSize,Text ScreenSize = getCtlSize( Screen ) constant inputbox= ]-Width)/2,(ScreenSize[2]-Height)/2,Width,Height,{WS_CAPTION,WS_BORDER}, WS_EX_TOPMOST), label = create(LText,"",inputbox,10,10,200,20,0), entry = create( EditText, "", inputbox, 10, 30, 180, 25, 0 ), ok = create( PushButton, "OK", inputbox, 20, 65, 60, 20, 0 ), cancel = create( PushButton, "Cancel",inputbox, 120, 65, 60, 20, 0 ) procedure Click_Button(integer self, integer event, sequence parms) if self=ok then Text=getText(entry) else Text="" end if closeWindow( inputbox ) end procedure setHandler({ok,cancel}, w32HClick, routine_id( "Click_Button" )) global function input_box(sequence text,sequence title,integer parent) setText(label,text) setText(inputbox,title) openDialog(inputbox) return Text end function Euphoria has a long way to go!
4. RE: Who can write an inputbox.e?
- Posted by Liu Junfeng <rufi at 163.com> Jan 22, 2003
- 448 views
Dan Moyer wrote: > Liu, > > 1. Although I'm a poor judge, if you just got to know Euphoria only ten > days ago, I'd say you're doing *exceptionally* well, & I hope we see > many > useful code contributions from you! > Yes, I have work out a sofeware named QuickLauncher, It can manage your shotcuts,and quickly launch a program , open a file or directroy. > 2. Your improved inputbox.ew is missing the code doing the creation of > the > inputbox. (That was one of the problems I had when I tried to do it in > response to your question: ie, making a window that was child of the > main > window, before the main was created.) > That is an unexpected error of IE, not my original code. > 3. You "copyrighted" your code; did you mean that no one may use your > code > without your express permission? I think many people don't understand > that > "copyright" does NOT mean "this code was created by me", but rather "I, > the > creator of this code, restrict the right to copy this code without my > express permission". In other words, "copyright" means "having the > right to > copy", and restricts that right to the author and any persons expressly > given that right *by* the author. > I am not a native speaker of English, anyone can use my code freely, only to know who coded it. > 4. I think most people on this list know that Euphoria (and various > libraries like Win32Lib and utilities like the IDE) need improvement, > and > many are in one way or another working to help with that improvement; so > your "Euphoria has a long way to go!" message is at the somewhat > superfluous > at best. > I don't strongly mean a critic, Euphoria is still not ideal for me. > Water is Wet! > Fire is Hot! > Ice is Cold! > Sand is Abrasive! > > Dan Moyer > > ----- Original Message ----- > From: "Liu Junfeng" <rufi at 163.com> > To: "EUforum" <EUforum at topica.com> > Sent: Tuesday, January 21, 2003 12:37 AM > Subject: RE: Who can write an inputbox.e? > > > > Pete Lomax wrote: > > > Some comments about this: > > > > > > > > > > > Like I say, the above works fine; if the above suggested mods cause > > > problems, then maybe just let sleeping dogs lie. If you intend to use > > > it alot in the future though, the above advice stands. > > > > > > Pete > > > PS maybe a destroy(inputbox) prior to each time calling input_box > > > would be same, no experience here Anyone? > > > > > > > > I got to know Euphoria only ten days ago,so I havn't much experience. > > Here is my modified code: > > -- inputbox.ew - open an inputbox > > -- Copyright (C) 2003 Liu Junfeng > > -- If you wish to contact me, send an e-mail to rufi at 163.com > > > > include win32lib.ew > > without warning > > > > constant Width=280,Height=120 > > sequence ScreenSize,Text > > ScreenSize = getCtlSize( Screen ) > > constant inputbox= > > ]-Width)/2,(ScreenSize[2]-Height)/2,Width,Height,{WS_CAPTION,WS_BORDER}, > > WS_EX_TOPMOST), > > label = create(LText,"",inputbox,10,10,200,20,0), > > entry = create( EditText, "", inputbox, 10, 30, 180, 25, 0 ), > > ok = create( PushButton, "OK", inputbox, 20, 65, 60, 20, 0 > > ), > > cancel = create( PushButton, "Cancel",inputbox, 120, 65, 60, > > 20, 0 ) > > procedure Click_Button(integer self, integer event, sequence parms) > > if self=ok then Text=getText(entry) > > else Text="" end if > > closeWindow( inputbox ) > > end procedure > > setHandler({ok,cancel}, w32HClick, routine_id( "Click_Button" )) > > global function input_box(sequence text,sequence title,integer parent) > > setText(label,text) > > setText(inputbox,title) > > openDialog(inputbox) > > return Text > > end function > > > > Euphoria has a long way to go! > > > > > > TOPICA - Start your own email discussion group. FREE! > > > Euphoria is one of my favorite languages!
5. RE: Who can write an inputbox.e?
- Posted by gertie at visionsix.com Jan 22, 2003
- 436 views
On 22 Jan 2003, at 7:52, Liu Junfeng wrote: <snip> > > 3. You "copyrighted" your code; did you mean that no one may use your > > code > > without your express permission? I think many people don't understand > > that > > "copyright" does NOT mean "this code was created by me", but rather "I, > > the > > creator of this code, restrict the right to copy this code without my > > express permission". In other words, "copyright" means "having the > > right to > > copy", and restricts that right to the author and any persons expressly > > given that right *by* the author. > > > I am not a native speaker of English, anyone can use my code freely, > only to know who coded it. Copyright = °æȨ , i think, if that helps. ÎÒ ²»ÉÆÓÚ Öйú ÒëÒô. ¶Ô²»Æð. Kat PS: do you know url where i can get Chinese in english characters?
6. RE: Who can write an inputbox.e?
- Posted by Liu Junfeng <rufi at 163.com> Jan 22, 2003
- 434 views
Dan Moyer wrote: > Liu responded: > > > Dan Moyer wrote: > > > Liu, > > > > <snip> > > > 2. Your improved inputbox.ew is missing the code doing the creation of > > > the > > > inputbox > <snip>> > > > > That is an unexpected error of IE, not my original code. > > Well, no one can be very surprised by errors in IE! :) Can you > re-send > your code for inputbox.ew? > > > -- inputbox.ew - open an inputbox -- witten by Liu Junfeng, 2003,Jan -- If you wish to contact me, send an e-mail to rufi at 163.com include win32lib.ew without warning constant Width=280,Height=120 sequence ScreenSize,Text ScreenSize = getCtlSize( Screen ) constant inputbox= ]-Width)/2,(ScreenSize[2]-Height)/2,Width,Height,{WS_CAPTION,WS_BORDER}, WS_EX_TOPMOST), label = create(LText,"",inputbox,10,10,200,20,0), entry = create( EditText, "", inputbox, 10, 30, 180, 25, 0 ), ok = create( PushButton, "OK", inputbox, 20, 65, 60, 20, 0 ), cancel = create( PushButton, "Cancel",inputbox, 120, 65, 60, 20, 0 ) procedure Click_Button(integer self, integer event, sequence parms) if self=ok then Text=getText(entry) else Text="" end if closeWindow( inputbox ) end procedure setHandler({ok,cancel}, w32HClick, routine_id( "Click_Button" )) global function input_box(sequence text,sequence title,integer parent) setText(label,text) setText(inputbox,title) openDialog(inputbox) return Text end function Euphoria is one of my favorite languages!
7. RE: Who can write an inputbox.e?
- Posted by Liu Junfeng <rufi at 163.com> Jan 22, 2003
- 451 views
ft,The error occured again. -- inputbox.ew - open an inputbox -- witten by Liu Junfeng, 2003,Jan -- If you wish to contact me, send an e-mail to rufi at 163.com include win32lib.ew without warning constant Width=280,Height=120 sequence ScreenSize,Text ScreenSize = getCtlSize( Screen ) constant inputbox= ]-Width)/2,(ScreenSize[2]-Height)/2,Width,Height,{WS_CAPTION,WS_BORDER}, WS_EX_TOPMOST), label = create(LText,"",inputbox,10,10,200,20,0), entry = create( EditText, "", inputbox, 10, 30, 180, 25, 0 ), ok = create( PushButton, "OK", inputbox, 20, 65, 60, 20, 0 ), cancel = create( PushButton, "Cancel",inputbox, 120, 65, 60, 20, 0 ) procedure Click_Button(integer self, integer event, sequence parms) if self=ok then Text=getText(entry) else Text="" end if closeWindow( inputbox ) end procedure setHandler({ok,cancel}, w32HClick, routine_id( "Click_Button" )) global function input_box(sequence text,sequence title,integer parent) setText(label,text) setText(inputbox,title) openDialog(inputbox) return Text end function
8. RE: Who can write an inputbox.e?
- Posted by Liu Junfeng <rufi at 163.com> Jan 22, 2003
- 462 views
Liu Junfeng wrote: > ft,The error occured again. > > -- inputbox.ew - open an inputbox > -- witten by Liu Junfeng, 2003,Jan > -- If you wish to contact me, send an e-mail to rufi at 163.com > > include win32lib.ew > without warning > > constant Width=280,Height=120 > sequence ScreenSize,Text > ScreenSize = getCtlSize( Screen ) > constant inputbox= >>createEx(Window,"",0,(ScreenSize[1]-Width)/2,(ScreenSize[2]-Height)/2,Width,Height,{WS_CAPTION,WS_BORDER}, > > > WS_EX_TOPMOST), > label = create(LText,"",inputbox,10,10,200,20,0), > entry = create( EditText, "", inputbox, 10, 30, 180, 25, 0 ), > ok = create( PushButton, "OK", inputbox, 20, 65, 60, 20, 0 > ), > cancel = create( PushButton, "Cancel",inputbox, 120, 65, 60, > 20, 0 ) > procedure Click_Button(integer self, integer event, sequence parms) > if self=ok then Text=getText(entry) > else Text="" end if > closeWindow( inputbox ) > end procedure > setHandler({ok,cancel}, w32HClick, routine_id( "Click_Button" )) > global function input_box(sequence text,sequence title,integer parent) > setText(label,text) > setText(inputbox,title) > openDialog(inputbox) > return Text > end function > > Euphoria is one of my favorite languages!
9. RE: Who can write an inputbox.e?
- Posted by Don Phillips <EuNexus at yahoo.com> Jan 23, 2003
- 446 views
> Pete, > > Hmm, > > Well, I'm thinking that the problem isn't exactly that a dialog (for an > inputBox) would have to create the inputbox as a child of a specific > window, > but rather that Liu's inputbox was the *main* window, which would seem > to be > undesirable. The "messageBox" function somehow gets around having to > make > it an (explicit?) child of some window, but that's apparently by a wrap > of a > call to a .dll. I think it was stated earlier that a normal message box worked as intended, but it had no field for entering or returning data. If on one hand you would like to code it from scratch, I would look up the API call CreateDialogIndirect which creates a modeless dialog box from a dialog box template in memory... Or, it is possible to add controls to just about anything, including built in dialogs. I do not have time to code up an example tonight, but it seems the easier solution would be to create an ok/cancel message box and add a text field to it. If you would like a working example, let me know and I will code something up in the next couple of days. Don
10. RE: Who can write an inputbox.e?
- Posted by Don Phillips <EuNexus at yahoo.com> Jan 24, 2003
- 449 views
Wolf wrote: > > If you would like a working example, let me know and I will code > > something up in the next couple of days. > > Don > > Love to see it, > ... *especially* if it was 'wrapped' without the need for win32lib-eaze. > > I'm not always very good at 'structures containing structures containing > pointers to structures' > > Wolf Well it turned out ok. It works as intended, but I forgot that the standard message box comes with a beep. Oh well, cant win them all... -- code -- include machine.e include msgbox.e constant WH_CBT = 5, HCBT_DESTROYWND = 4, HCBT_ACTIVATE = 5, WS_CHILD = #40000000, WS_VISIBLE = #10000000, WS_BORDER = #800000, WM_GETTEXT = #D, WM_GETTEXTLENGTH = #E atom MessageHook atom NewEditHWND sequence NewEditText NewEditText = {} constant Lib1 = open_dll( "user32.dll" ), Lib2 = open_dll( "kernel32.dll" ), SetWindowsHookEx = define_c_func( Lib1, "SetWindowsHookExA", {C_LONG,C_LONG,C_LONG,C_LONG}, C_LONG ), UnhookWindowsHookEx = define_c_proc( Lib1, "UnhookWindowsHookEx", {C_LONG} ), GetCurrentThreadId = define_c_func( Lib2, "GetCurrentThreadId", {}, C_LONG ), CreateWindow = define_c_func( Lib1, "CreateWindowExA", ,C_LONG,C_LONG,C_LONG,C_LONG,C_LONG,C_LONG,C_LONG,C_LONG,C_LONG,C_LONG}, C_LONG ), SendMessage = define_c_func( Lib1, "SendMessageA", {C_LONG,C_LONG,C_LONG,C_LONG}, C_LONG ) function CBTProc( atom nCode, atom wParam, atom lParam ) atom Void atom Buffer atom Length if nCode = HCBT_ACTIVATE then Buffer = allocate_string( "EDIT" ) NewEditHWND = c_func( CreateWindow, { 0,Buffer,0,WS_CHILD+WS_VISIBLE+WS_BORDER,11,4,156,20,wParam,0,instance(),0 } ) free( Buffer ) elsif nCode = HCBT_DESTROYWND then Length = c_func( SendMessage, {NewEditHWND,WM_GETTEXTLENGTH,0,0} ) + 1 Buffer = allocate( Length ) Void = c_func( SendMessage, {NewEditHWND,WM_GETTEXT,Length,Buffer} ) NewEditText = peek( {Buffer,Length} ) free( Buffer ) c_proc( UnhookWindowsHookEx, {MessageHook} ) end if return( 0 ) end function global function input_box( sequence title ) atom RetVal MessageHook = c_func( SetWindowsHookEx, { WH_CBT, call_back( routine_id("CBTProc") ), instance(), c_func( GetCurrentThreadId, {} ) }) RetVal = message_box( "", title, MB_OKCANCEL ) return( NewEditText ) end function atom break sequence Text Text = input_box( "Input text" ) printf( 1, "'%s'\n", {Text} ) -- end code-- Don
11. RE: Who can write an inputbox.e?
- Posted by Don Phillips <EuNexus at yahoo.com> Jan 24, 2003
- 459 views
> Don, > > Neat!! > > I had to change: > CreateWindow = define_c_func( Lib1, "CreateWindowExA", > ,C_LONG,C_LONG,C_LONG,C_LONG,C_LONG,C_LONG,C_LONG,C_LONG,C_LONG,C_LONG}, > C_LONG ), > > to: > CreateWindow = define_c_func( Lib1, "CreateWindowExA", > {C_LONG,C_LONG,C_LONG,C_LONG,C_LONG,C_LONG,C_LONG,C_LONG,C_LONG,C_LONG,C_LON > > G,C_LONG}, > C_LONG ), > > to get it to work, hope that's correct?? > (added two more "C_LONG" & a "{" ) Yes that is correct, for some reason sometimes when I post long lines they tend to truncate. I also hope Lui will be able to use it. Maybe in the future I will have some time to play around with making templates in memory...
12. RE: Who can write an inputbox.e?
- Posted by Liu Junfeng <rufi at 163.com> Feb 19, 2003
- 438 views
I used this program in my application, but the result of input_box function is always {0}, though it works well in other tests. Don Phillips wrote: > > Don, > > > > Neat!! > > > > I had to change: > > CreateWindow = define_c_func( Lib1, "CreateWindowExA", > > ,C_LONG,C_LONG,C_LONG,C_LONG,C_LONG,C_LONG,C_LONG,C_LONG,C_LONG,C_LONG}, > > C_LONG ), > > > > to: > > CreateWindow = define_c_func( Lib1, "CreateWindowExA", > > {C_LONG,C_LONG,C_LONG,C_LONG,C_LONG,C_LONG,C_LONG,C_LONG,C_LONG,C_LONG,C_LON > > > > > > G,C_LONG}, > > C_LONG ), > > > > to get it to work, hope that's correct?? > > (added two more "C_LONG" & a "{" ) > > Yes that is correct, for some reason sometimes when I post long lines > they tend to truncate. I also hope Lui will be able to use it. Maybe > in the future I will have some time to play around with making templates > > in memory... > > Euphoria is one of my favorite languages!
13. RE: Who can write an inputbox.e?
- Posted by Al Getz <Xaxo at aol.com> Feb 19, 2003
- 448 views
Liu Junfeng wrote: > I used this program in my application, but the result of input_box > function is always {0}, though it works well in other tests. > > Don Phillips wrote: > > > Don, > > > > > > Neat!! > > > > > > I had to change: > > > CreateWindow = define_c_func( Lib1, "CreateWindowExA", > > > ,C_LONG,C_LONG,C_LONG,C_LONG,C_LONG,C_LONG,C_LONG,C_LONG,C_LONG,C_LONG}, > > > C_LONG ), > > > > > > to: > > > CreateWindow = define_c_func( Lib1, "CreateWindowExA", > > > > > > {C_LONG,C_LONG,C_LONG,C_LONG,C_LONG,C_LONG,C_LONG,C_LONG,C_LONG,C_LONG,C_LON > > > > > > > > > G,C_LONG}, > > > C_LONG ), > > > > > > to get it to work, hope that's correct?? > > > (added two more "C_LONG" & a "{" ) > > > > Yes that is correct, for some reason sometimes when I post long lines > > they tend to truncate. I also hope Lui will be able to use it. Maybe > > in the future I will have some time to play around with making templates > > > > > > in memory... > > > > > Euphoria is one of my favorite languages! > > Hi there Liu! Im not sure what you are doing there, but if all you need is a way to call the CreateWindowEx function from Euphoria, try checking out the help program posted on the main Euphoria site. Here's an excerpt from the Windows Api section: -------------------------------------------------- CreateWindowEx Note: We don't use the function "CreateWindow" anymore because it doesnt support the extended styles. Purpose: The CreateWindowEx function creates an overlapped, pop-up, or child window with an extended style. Win form: HWND CreateWindowEx( DWORD dwExStyle,// extended window style LPCTSTR lpClassName,// address of registered class name LPCTSTR lpWindowName,// address of window name DWORD dwStyle,// window style int x,// horizontal position of window int y,// vertical position of window int nWidth,// window width int nHeight,// window height HWND hWndParent,// handle of parent or owner window HMENU hMenu,// handle of menu, or child-window identifier HINSTANCE hInstance,// handle of application instance LPVOID lpParam // address of window-creation data ); Eu form: include dll.e constant CP=C_POINTER,DW=C_ULONG,CI=C_INT atom user32 user32 = open_dll("user32.dll") global constant xCreateWindow = define_c_func(user32, "CreateWindowEx", {DW,CP,CP,DW,CI,CI,CI,CI,CP,CP,CP,CP}, CP) atom hwnd,dwExStyle,lpClassName,lpWindowName,dwStyle, x,y, nWidth, nHeight,hWndParent,hMenu,hInstance,lpParam hwnd=c_func(xCreateWindowEx,{ dwExStyle,lpClassName,lpWindowName,dwStyle, x,y, nWidth, nHeight,hWndParent,hMenu,hInstance,lpParam}) returns: hwnd=0 failure hwnd>0 success, the window's handle Notes: 1. The Windows system can support a maximum of 16,364 window handles. 2. lpParam is usually made equal to zero (0) unless creating a multiple document interface, in which case it points to a CLIENTCREATESTRUCT struct. 3. The hMenu is usually made equal to zero (0) and the menu is created later with CreateMenu{} and then added to the window with SetMenu(). 4. hWndParent is the handle of the parent window, or zero (0) if none. 5. lpClassName points to a null terminated string that specifies the class name, or is a global atom. The class name can be any of the predefined types or a name that was registered with the RegisterClass() function. -------------------------------------------------- Good luck with it, Al