Делаю текстовый редактор. Возникла небольшая проблема. Нужно сделать функцию перенос по словам. Я создаю EDIT функцией CreateWindowEx с флагами WS_VISIBLE+WS_CHILD+ES_MULTILINE+WS_HSCROLL+WS_VSCROLL+ES_AUTOHSCROLL+ES_AUTOVSCROLL. чтобы был перенос по словам нужно нужно создать эдит только убрать флаги: ES_AUTOHSCROLL и WS_HSCROLL. вопрос: как можно пересоздать эдит в программе при ее выполнении?
я в своей программе пересоздаю его: Код (Text): ;======================================================================= proc ChangeEdit _hedit,_flags ;----------------------------------------------------------------------- local modify: dd ? ;----------------------------------------------------------------------- invoke SendMessage,[_hedit],EM_GETMODIFY,0,0 mov [modify],eax invoke SendMessage,[_hedit],EM_GETHANDLE,0,0 push eax invoke LocalAlloc,LMEM_MOVEABLE,16 push 0 ; для EM_SETHANDLE push eax invoke LocalLock,eax mov dword [eax],0 invoke LocalUnlock,eax invoke SendMessage,[_hedit],EM_SETHANDLE invoke DestroyWindow,[_hedit] invoke CreateWindowEx,WS_EX_CLIENTEDGE,_edit,0,[_flags],0,0,0,0,\ [hMain],IDW_EDIT,[wc.hInstance],NULL mov [_hedit],eax invoke SendMessage,eax,EM_GETHANDLE,0,0 pop edx push eax invoke SendMessage,[_hedit],EM_SETHANDLE,edx,0 invoke SendMessage,[_hedit],EM_SETTABSTOPS,1,tab_stops invoke SendMessage,[_hedit],EM_SETMODIFY,[modify],0 invoke LocalFree mov eax,[_hedit] ret ;----------------------------------------------------------------------- endp ;======================================================================= для полного счастья здесь еще бы не помешало сохранять/восстанавливать текущую позицию - здесь это не делается. _hedit - старый хэндл _flags - флаги (стили) возвращает новый хэндл. для уменьшения затрат на копирование текст переносится в новый контрол передачей области памяти, принадлежавшей первому контролу.
По-моему, можно послать сообщение, изменяющее стили элемента управления. Только вот не помню его - загляните в winuser.h.
shoo А перерисовать элемент - не поможет? Может еще какое событие надо послать, чтобы применить новые стили (может WM_INITDIALOG?).