Jump to content

_GUICtrlRichEdit_Create question


Go to solution Solved by BrewManNH,

Recommended Posts

Posted (edited)

is it possible to disable the user from typing or editing or selecting items?

basically a log box..

$hRichEdit = _GUICtrlRichEdit_Create($hGui, "", 7,45,235,80, BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL))
Edited by Merchants
  • Moderators
Posted

Merchants,

If you look at the list of styles on the GUICtrlRichEdit_Create page in the Help file do you not see one which might fit the bill? :huh:

M23

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:

  Reveal hidden contents

 

Posted

  On 10/2/2014 at 6:33 PM, Melba23 said:

Merchants,

If you look at the list of styles on the GUICtrlRichEdit_Create page in the Help file do you not see one which might fit the bill? :huh:

M23

 

i can only find this one

$ES_READONLY 0x0800 Prevents the user from typing or editing text in the edit control.

 

if i add this the user can still select the text

  • Moderators
Posted

Merchants,

To prevent the user from selecting the text, you can place a child GUI over the RichEdit like this: ;)

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

$hGui = GUICreate("Test", 500, 500)
$hRichEdit = _GUICtrlRichEdit_Create($hGui, "This is a test.", 10, 10, 300, 220, BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL, $ES_READONLY))

GUISetState(@SW_SHOW)

$hChildGUI = GUICreate("", 300, 220, 10, 10, $WS_POPUP, $WS_EX_MDICHILD, $hGui)
WinSetTrans($hChildGUI, "", 10)
GUISetState()

While True
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            _GUICtrlRichEdit_Destroy($hRichEdit)
            Exit
    EndSwitch
WEnd
M23

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:

  Reveal hidden contents

 

  • Moderators
Posted

Merchants,

As far as I know there is no style to prevent text selection or I would have suggested it. What is wrong with the child GUI overlay idea? I thought it worked very nicely. :huh:

M23

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:

  Reveal hidden contents

 

  • Moderators
Posted

Merchants,

 

  Quote

i just have to live with it

Note to self: Do not bother next time. :(>

M23

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:

  Reveal hidden contents

 

Posted

You could use ControlDisable and disable the control, that would prevent someone from selecting the text as well.

Using Melba's script as a base, here's how that would work.

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

$hGui = GUICreate("Test", 500, 500)
$hRichEdit = _GUICtrlRichEdit_Create($hGui, "", 10, 10, 300, 220, BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL, $ES_READONLY))
ControlDisable($hGui, "", $hRichEdit)
ControlSetText($hGui, "", $hRichEdit, "This is a test.")
GUISetState(@SW_SHOW)

;~ $hChildGUI = GUICreate("", 300, 220, 10, 10, $WS_POPUP, $WS_EX_MDICHILD, $hGui)
;~ WinSetTrans($hChildGUI, "", 10)
;~ GUISetState()

While True
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            _GUICtrlRichEdit_Destroy($hRichEdit)
            Exit
    EndSwitch
WEnd

You'll notice that I used _GUICtrlRichEdit_AppendText to demonstrate that even when it's disabled you can still add text to it.

If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

  Reveal hidden contents

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Posted (edited)

this was enough

ControlDisable($hGui, "", $hRichEdit)

Thank you

it works but when i have more text then i can't see it then i wana scroll down but it is...it is disable...

got a command to turn only the scroll bar on?

Edited by Merchants
  • Solution
Posted

Here's how you'd do it without using the scroll bar, but scrolling with a mouse. I don't believe you can turn on the scroll bar on a disabled control, but someone will probably prove me wrong. :)

#include <GUIConstantsEx.au3>
#include <GuiRichEdit.au3>
#include <WindowsConstants.au3>
$hGui = GUICreate("Test", 500, 500)
$hRichEdit = _GUICtrlRichEdit_Create($hGui, "", 10, 10, 300, 220, BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL, $ES_READONLY))
ControlDisable($hGui, "", $hRichEdit)
For $i = 1 To 10000
    _GUICtrlRichEdit_AppendText($hRichEdit, "This is a test.")
Next
GUIRegisterMsg($WM_MOUSEWHEEL, "_WM_MOUSEWHEEL") ; Monitors mouse wheel to move +/- the text in the edit control
GUISetState(@SW_SHOW)
GUISetState(@SW_MINIMIZE)
GUISetState(@SW_RESTORE)

;~ $hChildGUI = GUICreate("", 300, 220, 10, 10, $WS_POPUP, $WS_EX_MDICHILD, $hGui)
;~ WinSetTrans($hChildGUI, "", 10)
;~ GUISetState()

While True
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            _GUICtrlRichEdit_Destroy($hRichEdit)
            Exit
    EndSwitch
WEnd

Func _WM_MOUSEWHEEL($hWnd, $iMsg, $wParam, $lParam)
;~  The code here is by Mat, from forum post: http://www.autoitscript.com/forum/topic/124346-wheel-detection/page__view__findpost__p__863690
    #forceref $hWnd, $iMsg, $wParam, $lParam
    Local $iLen = _WinAPI_HiWord($wParam) / 120
    ; I used each of these 4 times because it scrolls very slowly if you do it one line at a time
    If $iLen > 0 Then
        _GUICtrlRichEdit_ScrollLineOrPage($hRichEdit, "lu")
        _GUICtrlRichEdit_ScrollLineOrPage($hRichEdit, "lu")
        _GUICtrlRichEdit_ScrollLineOrPage($hRichEdit, "lu")
        _GUICtrlRichEdit_ScrollLineOrPage($hRichEdit, "lu")
    Else
        _GUICtrlRichEdit_ScrollLineOrPage($hRichEdit, "ld")
        _GUICtrlRichEdit_ScrollLineOrPage($hRichEdit, "ld")
        _GUICtrlRichEdit_ScrollLineOrPage($hRichEdit, "ld")
        _GUICtrlRichEdit_ScrollLineOrPage($hRichEdit, "ld")
    EndIf
    Return 0 ; If you return zero, then the message will not be sent to any more windows.
EndFunc   ;==>_WM_MOUSEWHEEL

If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

  Reveal hidden contents

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Posted
  On 10/2/2014 at 8:26 PM, BrewManNH said:

Here's how you'd do it without using the scroll bar, but scrolling with a mouse. I don't believe you can turn on the scroll bar on a disabled control, but someone will probably prove me wrong. :)

 

will it works..

i think someone will prove you wrong don't know who will be first

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