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!
tongue
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! tongue

...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!


***********************************************************************




***********************************************************************

new topic     » topic index » view message » categorize

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! tongue
> 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! tongue
> 
> ...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!

new topic     » goto parent     » topic index » view message » categorize

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 hereblink 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!

new topic     » goto parent     » topic index » view message » categorize

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 hereblink 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!

new topic     » goto parent     » topic index » view message » categorize

5. RE: Who can write an inputbox.e?

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?

new topic     » goto parent     » topic index » view message » categorize

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!

new topic     » goto parent     » topic index » view message » categorize

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

new topic     » goto parent     » topic index » view message » categorize

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!

new topic     » goto parent     » topic index » view message » categorize

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

new topic     » goto parent     » topic index » view message » categorize

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

new topic     » goto parent     » topic index » view message » categorize

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...

new topic     » goto parent     » topic index » view message » categorize

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!

new topic     » goto parent     » topic index » view message » categorize

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

new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu