Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] GUICtrlCreateEdit без выделения текста (http://forum.oszone.net/showthread.php?t=337128)

-TRM- 11-10-2018 16:35 2835442

GUICtrlCreateEdit без выделения текста
 
Здравствуйте, есть код примера
Код:

#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 615, 437, 192, 124)
$Edit1 = GUICtrlCreateEdit("", 8, 72, 601, 257, BitOR($ES_CENTER,$ES_AUTOVSCROLL,$ES_OEMCONVERT,$ES_READONLY,$WS_VSCROLL))
GUICtrlSetData(-1, StringFormat("#INCLUDE <EDITCONSTANTS.AU3>\r\n#INCLUDE <GUICONSTANTSEX.AU3>\r\n#INCLUDE <GUISCROLLBARS.AU3>\r\n#INCLUDE <SCROLLBARCONSTANTS.AU3>\r\n#INCLUDE <WINDOWSCONSTANTS.AU3>\r\n#INCLUDE <WINAPI.AU3>\r\n\r\n$HMAIN = GUICREATE("&Chr(39)&"TROLOLO"&Chr(39)&", 640, 480, -1, -1, -1, $WS_EX_COMPOSITED)\r\n$CEDIT = GUICTRLCREATEEDIT("&Chr(39)&""&Chr(39)&", 10, 10, 620, 460, $ES_WANTRETURN+$ES_AUTOHSCROLL+\r\n$ES_AUTOVSCROLL)\r\n$HEDIT = GUICTRLGETHANDLE($CEDIT)\r\n\r\nGUIREGISTERMSG($WM_COMMAND, "&Chr(39)&"WM_COMMAND"&Chr(39)&")\r\nGUISETSTATE()\r\n\r\nDO\r\nUNTIL GUIGETMSG() = $GUI_EVENT_CLOSE\r\n\r\nFUNC WM_COMMAND($HWND, $MSGID, $WPARAM, $LPARAM)\r\n    IF $HWND = $HMAIN AND $LPARAM = $HEDIT AND _WINAPI_HIWORD($WPARAM) = $EN_UPDATE THEN\r\n        _GUISCROLLBARS_SHOWSCROLLBAR($HEDIT, $SB_BOTH, TRUE)\r\n        IF BITAND(DLLSTRUCTGETDATA(_GUISCROLLBARS_GETSCROLLBARINFOEX($HEDIT, $OBJID_VSCROLL), \r\n"&Chr(39)&"RGSTATE"&Chr(39)&", 1), 1) = 1 THEN\r\n            _GUISCROLLBARS_SHOWSCROLLBAR($HEDIT, $SB_VERT, FALSE)\r\n        ENDIF\r\n        IF BITAND(DLLSTRUCTGETDATA(_GUISCROLLBARS_GETSCROLLBARINFOEX($HEDIT, $OBJID_HSCROLL), \r\n"&Chr(39)&"RGSTATE"&Chr(39)&", 1), 1) = 1 THEN\r\n            _GUISCROLLBARS_SHOWSCROLLBAR($HEDIT, $SB_HORZ, FALSE)\r\n        ENDIF\r\n    ENDIF\r\n    RETURN $GUI_RUNDEFMSG\r\nENDFUNC"))
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

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

        EndSwitch
WEnd

Помогите сделать так, чтобы при запуске текст не выделялся.
P.S. Нужно просто сделать текст со скролом без возможности редактиования.

Creat0R 11-10-2018 20:01 2835473

Цитата:

Цитата -TRM-
сделать так, чтобы при запуске текст не выделялся. »

Код:

$Edit1 = GUICtrlCreateEdit("", 8, 72, 601, 257, BitOR($ES_CENTER,$ES_AUTOVSCROLL,$ES_OEMCONVERT,$ES_READONLY))

...

GUICtrlCreateLabel('',  -1000, -1000)
GUICtrlSetState(-1, $GUI_FOCUS)


Iska 11-10-2018 20:05 2835475

Цитата:

Цитата -TRM-
чтобы при запуске текст не выделялся.
P.S. Нужно просто сделать текст со скролом без возможности редактиования. »

Почему «чтобы … не выделялся»? Вы хотите запретить и копирование из элемента управления?

Creat0R 11-10-2018 20:11 2835479

Цитата:

Цитата Iska
Почему «чтобы … не выделялся»? »

Ударение наверное на "при запуске" )).
Чтобы совсем не выделялся нужно отлавливать системные сообщения (на фокусирование) и блокировать их.

-TRM- 12-10-2018 12:13 2835578

Creat0R, А возможно ли сделать на белом GUI фон текста в GUICtrlCreateEdit тоже белым, если режим только чтения ($ES_READONLY) указан ?? А то как-то не очень-фон белый, а текст на сером фоне.

Creat0R 14-10-2018 17:28 2835850

Цитата:

Цитата -TRM-
сделать на белом GUI фон текста в GUICtrlCreateEdit тоже белым »

Код:

GUISetBkColor(0xFFFFFF, $Form1)
GUICtrlSetBkColor($Edit1, 0xFFFFFF)

Предвкушая следующий вопрос - вот так убирается рамка:

Код:

$Edit1 = GUICtrlCreateEdit("", 8, 72, 601, 257, BitOR($ES_CENTER,$ES_AUTOVSCROLL,$ES_OEMCONVERT,$ES_READONLY,$WS_VSCROLL), 0)


Время: 13:48.

Время: 13:48.
© OSzone.net 2001-