Jump to content

Recommended Posts

Posted

I intend to enable/disable the wrap/unwrap capability of the edit control but it's not working at all, here's my code:

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <StaticConstants.au3>
#include <Constants.au3>
#include <WinAPI.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 246, 165, 192, 114)
$Edit1 = GUICtrlCreateEdit("", 8, 8, 225, 121,BitOR($ES_AUTOVSCROLL,$ES_WANTRETURN,$WS_HSCROLL))
GUICtrlSetData(-1, "this is supposed to be a very long and whiny statement that should force this string to go to the next line and I hope it does.")
$Checkbox1 = GUICtrlCreateCheckbox("Wrap Text", 152, 136, 81, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Checkbox1
            $iStyle   = _WinAPI_GetWindowLong(ControlGetHandle($Form1,"",$Edit1), $GWL_STYLE)
            If GUICtrlRead($Checkbox1) = 1 Then
                ConsoleWrite("Checked" & @CRLF)
                GUICtrlSetStyle($Edit1, BitOR($iStyle,BitOR($ES_AUTOVSCROLL, $WS_HSCROLL)))
            Else
                ConsoleWrite("UnChecked" & @CRLF)
                GUICtrlSetStyle($Edit1, BitXOR($iStyle,BitOR($ES_AUTOVSCROLL, $WS_HSCROLL)))
            EndIf
    EndSwitch
WEnd
Posted

Try something like this

#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("Form1", 246, 165, 192, 114)
$Edit1 = GUICtrlCreateEdit("", 8, 8, 225, 121)
GUICtrlSetData($Edit1, "this is supposed to be a very long and whiny statement that should force this string to go to the next line and I hope it does.")
$Checkbox1 = GUICtrlCreateCheckbox("Wrap Text", 152, 136, 81, 17)
GUISetState(@SW_SHOW)
While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Checkbox1
            $txt = GUICtrlRead($Edit1)
            GUICtrlDelete($Edit1)
            If GUICtrlRead($Checkbox1) = 1 Then
                $Edit1 = GUICtrlCreateEdit("", 8, 8, 225, 121,BitXOR($GUI_SS_DEFAULT_EDIT,$ES_AUTOHSCROLL,$WS_HSCROLL))
            Else
                $Edit1 = GUICtrlCreateEdit("", 8, 8, 225, 121)
            EndIf
            GUICtrlSetData($Edit1, $txt)
    EndSwitch
WEnd
  • Moderators
Posted (edited)

zbatev,

delete and recreate the control but that doesn't work

Yes it does; :D

#include <buttonconstants.au3>
#include <editconstants.au3>
#include <guiconstantsex.au3>
#include <windowsconstants.au3>
#include <staticconstants.au3>
#include <constants.au3>
#include <winapi.au3>

$Form1 = GUICreate("Form1", 246, 165, 192, 114)
$Edit1 = GUICtrlCreateEdit("", 8, 8, 225, 121, BitOr($ES_AUTOVSCROLL, $ES_AUTOHSCROLL))
GUICtrlSetData(-1, "this is supposed to be a very long and whiny statement that should force this string to go to the next line and I hope it does.")
$Checkbox1 = GUICtrlCreateCheckbox("Wrap Text", 152, 136, 81, 17)
GUISetState(@SW_SHOW)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Checkbox1
            $iStyle = _WinAPI_GetWindowLong(GUICtrlGetHandle($Edit1), $GWL_STYLE)
            If GUICtrlRead($Checkbox1) = 1 Then
                ConsoleWrite("Checked" & @CRLF)
                $sData = GUICtrlRead($Edit1)
                GUICtrlDelete($Edit1)
                $Edit1 = GUICtrlCreateEdit("", 8, 8, 225, 121, BitOr($ES_AUTOVSCROLL, $ES_MULTILINE))
                GUICtrlSetData($Edit1, $sData)
            Else
                ConsoleWrite("UnChecked" & @CRLF)
                $sData = GUICtrlRead($Edit1)
                GUICtrlDelete($Edit1)
                $Edit1 = GUICtrlCreateEdit("", 8, 8, 225, 121, BitOr($ES_AUTOVSCROLL, $ES_AUTOHSCROLL))
                GUICtrlSetData($Edit1, $sData)
            EndIf
    EndSwitch
WEnd

I am still looking into how you can do it dynamically by changing the style alone. :)

M23

Edit: Looks like it cannot be done - the styles are seemingly among those that cannot be altered dynamically. Even MSDN suggests the delete/create method. ;)

Edited by Melba23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see 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

 

Posted

I am still looking into how you can do it dynamically by changing the style alone. :)

M23

Edit: Looks like it cannot be done - the styles are seemingly among those that cannot be altered dynamically. Even MSDN suggests the delete/create method. ;)

Thanks a lot Melba... I'll try to integrate this into my app. So sad this can't be done dynamically...

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
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...