PDA

Показать полную графическую версию : [решено] GUICtrlCreateEdit без выделения текста


-TRM-
11-10-2018, 16:35
Здравствуйте, есть код примера

#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
сделать так, чтобы при запуске текст не выделялся. »
$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
чтобы при запуске текст не выделялся.
P.S. Нужно просто сделать текст со скролом без возможности редактиования. »
Почему «чтобы … не выделялся»? Вы хотите запретить и копирование из элемента управления?

Creat0R
11-10-2018, 20:11
Почему «чтобы … не выделялся»? »
Ударение наверное на "при запуске" )).
Чтобы совсем не выделялся нужно отлавливать системные сообщения (на фокусирование) и блокировать их.

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

Creat0R
14-10-2018, 17:28
сделать на белом 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)




© OSzone.net 2001-2012