1. RE: Who can write an inputbox.e?
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?
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?
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?
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
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?
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?
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?
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?
> 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?
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?
> 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?
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?
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