Sign in to follow this  
Followers 0
E1M1

$WS_CHILD Disables typing in edito control.

6 posts in this topic

Is there any way to enable typing in edit control which is in Child window. $WS_CHILD does not allow me to type in edit control, but if I remove $WS_CHILD child window is no longer locked in it's parent. I need $WS_CHILD because I want to keep my window in parent window, and I want to move it tegether with parent window. I am wondering if any one could help me find way around this?

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

$Form1 = GUICreate("Parent", 800,600, Default, Default, BitOR($WS_CLIPCHILDREN, $WS_CLIPSIBLINGS, $WS_BORDER, $WS_MAXIMIZEBOX, $WS_MINIMIZEBOX, $WS_SIZEBOX, $WS_SYSMENU))
GUISetState(@SW_SHOW)

$hEditor = GUICreate("Child", 583, 302, 210, 0,BitOR($WS_CHILD, $WS_THICKFRAME, $WS_CAPTION),-1,$Form1)
$log = GUICtrlCreateEdit("Type here",2,2,579,300)
GUISetState(@SW_SHOW)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch
WEnd

edited

Share this post


Link to post
Share on other sites



E1M1,

If you use the API call to set the parentage rather then the style, the edit control works: ;)

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <WinAPI.au3>

$Form1 = GUICreate("Parent", 800, 600, Default, Default, BitOR($WS_CLIPCHILDREN, $WS_CLIPSIBLINGS, $WS_BORDER, $WS_MAXIMIZEBOX, $WS_MINIMIZEBOX, $WS_SIZEBOX, $WS_SYSMENU))
GUISetState(@SW_SHOW)

$hEditor = GUICreate("Child", 583, 302, 210, 0, BitOR($WS_THICKFRAME, $WS_CAPTION), -1, $Form1)
$log = GUICtrlCreateEdit("Type here", 2, 2, 579, 300)
GUISetState(@SW_SHOW)

; Set parent
_WinAPI_SetParent($hEditor, $Form1)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch
WEnd

But I cannot say how that will affect the rest of the script - give it a go and see. :)

M23


Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind._______My UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Share this post


Link to post
Share on other sites

This method is better than previous, but it makes main window not resizeable and I cant click close button on main window, it's title bar stays grey. There must be better way to do this, so many programs are out there that have child and parend windows system.


edited

Share this post


Link to post
Share on other sites

E1M1,

Change the parent GUI creation code like this and see what you think: ;)

$Form1 = GUICreate("Parent", 800, 600, Default, Default, BitOR($WS_CLIPCHILDREN, $WS_CLIPSIBLINGS, $WS_BORDER, $WS_MAXIMIZEBOX, $WS_MINIMIZEBOX, $WS_SIZEBOX, $WS_SYSMENU))
GUICtrlCreateLabel("", 0, 0, 0, 0) ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<< New line
GUISetState(@SW_SHOW)

M23


Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind._______My UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Share this post


Link to post
Share on other sites

Nice find, I cant understand how can 1 empty label do that for GUI what special it does?? I thought it woult only use some space in memory, but I see it can do something more useful too.


edited

Share this post


Link to post
Share on other sites

E1M1,

So far no one has been able to explain it - but it works every time! :)

If you ever do find out why - please let us know! ;)

M23


Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind._______My UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0