выделенный фрагмент текста

Тема в разделе "WASM.BEGINNERS", создана пользователем zxcc, 13 июн 2007.

  1. zxcc

    zxcc New Member

    Публикаций:
    0
    Регистрация:
    21 окт 2006
    Сообщения:
    172
    Здравствуйте.Нужно сохранить в файл выделенный фрагмент текста.Как сохранить примерно знаю,а вот как определить выделенный фрагмент не могу разобраться.Подскажите пожалуйста кто знает.
     
  2. rain

    rain New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2006
    Сообщения:
    976
     
  3. shoo

    shoo New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2003
    Сообщения:
    1.537
    Адрес:
    Ukraine
    да, зависит от типа контрола - для ричедита проще, а для простого эдита определить выделение через EM_GETSEL, затем либо прочитать в буфер все содержимое и оттуда выдрать с... по..., либо можно получить хэндл буфера эдита (только для многострочного) - и считать из него:
    Код (Text):
    1. proc EditGetSel edit,buff ; Unicode!!!
    2.     local start     dd ?
    3.     local finish    dd ?
    4.  
    5.     lea eax,[finish]
    6.     lea edx,[start]
    7.     invoke SendMessage,[edit],EM_GETSEL,edx,eax
    8.     mov eax,[finish]
    9.     sub eax,[start]
    10.     je  .done
    11.     mov [finish],eax
    12.     invoke SendMessage,[edit],EM_GETHANDLE,0,0
    13.     test eax,eax
    14.     jz  .done
    15.     invoke LocalLock,eax
    16.     test eax,eax
    17.     jz  .done
    18.     push eax
    19.     push edi
    20.     push esi
    21.     mov edi,[buff]
    22.     mov esi,[start]
    23.     add esi,esi
    24.     add esi,eax
    25.     mov ecx,[finish]
    26.     rep movsw
    27.     mov word [edi],0
    28.     pop esi
    29.     pop edi
    30.     invoke LocalUnlock
    31.     mov eax,[buff]
    32. .done:    
    33.     ret
    34. endp